2013-05-23 1 views
3

서버에서 매우 간단한 작업을 수행해 보겠습니다. 우리 사이트에 많은 사람들이 채팅하고 있으며, 그들 각각이 온라인인지 아닌지 알고 싶습니다.NoSQL이 더 빨리 수행되어야하는 이유는 무엇입니까?

MySQL 데이터베이스를 사용하거나 memcached NoSQL 솔루션을 적용하는 두 가지 방법이 있습니다.

그러나 memcached가 더 빨리 수행되어야하는 이유는 무엇입니까? 내가 올바르게 이해했다면, MySQL은 디스크가 아닌 메모리에서 데이터를 읽습니다 (올바르게 설정되고 조정 된 경우). 지속성에 대한 리소스는 거의 없지만 너무 많지는 않습니다. 디스크에 플러시 할 메모리 페이지가 거의 없습니다.

주요 질문. 이러한 작업을 위해 NoSQL을 사용할 강력한 이유가 있습니까? 아니면 MySQL도 정상적으로 수행 할 수 있습니까?

답변

4

데이터가 메모리에 남아 있고 I/O가 문제가되지 않으므로 위와 같은 간단한 작업의 경우 성능이 크게 변하지 않을 것입니다.

당신의 질문은 일반적인 NoSQL 엔진 인 memcached를 암시하는 것처럼 보입니다. memcached가 자체적으로 엔티티이고 일반적으로 NoSQL 데이터베이스로 개념화되지는 않았지만 디스크 바인딩 데이터베이스에 의해 지원되지 않는 것보다 빠르고 변동성이 큰 키 - 값 저장소라고 강조합니다.

SQL과 NoSQL에는 각각 질문의 범위와 약점이 있으며 자세한 정보는 available in another thread입니다.

0

NoSQL은 일반적으로 빅 데이터 분석 용입니다. Memcached는 빠른 캐싱 시스템을 만들기위한 것입니다.

채팅은 Big Data 또는 캐시 시스템에 대한 분석이 필요하지 않습니다. 몇 가지 데이터 만 표시하면되고 데이터는 자주 업데이트되기 때문입니다. 따라서 관계형 DBMS가 최선의 선택입니다.

거의 변경되지 않는 복잡한 사이트가 있다고 가정 해보십시오. 페이지가 복잡하고 각 페이지를 작성하기 위해 몇 가지 복잡한 쿼리를 실행해야한다고 가정 해보십시오. 이 경우 memcached를 사용하면 페이지를 작성하고 메모리에 저장할 수 있기 때문에 의미가 있습니다.

엄청난 비즈니스 인텔리전스 데이터가 있다고 가정 해보십시오. 평균, 표준 편차, 합계와 같은 일부 집계 연산이 필요합니다. Big Data 솔루션은 MySQL보다 성능이 좋을 수 있습니다. 생각에는 많은 경고가 있습니다.

결론 : NoSQL은 채팅에 적합하지 않습니다.

+0

데이터 분석 솔루션으로 NoSQL을 분류하는 것은 간단합니다. 이것은 열 기반 저장소에 대해서는 사실 일 수 있지만 반드시 그래프, 문서 또는 KV 지향 데이터베이스에 대한 것은 아닙니다. 그냥 말하기;) – LMeyer

+0

다른 목적으로 사용해서는 안된다고 생각합니다. 많은 경우 스키마가없고 오류가 발생하기 쉽거나 데이터를 작성하기가 너무 힘들어서 (예를 들어 MongoDB) 데이터 무결성이나 내장 보안 기능을 부여하지 않습니다. 그래서, 나는 데이터웨어 하우징 이외의 다른 용도로 사용하지 않을 것입니다 (그리고 ENORMOUS 데이터베이스의 경우에만). 물론 그것은 제 의견입니다. 가끔씩 사용해야했지만 DBA가 자신의 업무를 처리하고 관계형 DB를 최적화 할 수 없었기 때문에 이러한 일이 발생했습니다. 그러나 다시, 그건 내 경험 일뿐입니다. –

+0

충분히 공정하지만 더 깊이 조사해야합니다. 예를 들어, Redis는 캐시 시스템으로 사용될 수 있습니다. 또는 Neo4J는 혼란스러운 데이터 구조에서 흥미로운 성능을 발휘할 수 있습니다. 이 모든 것은 대개 빅 데이터와 관련된 특정 사용 사례이지만 여전히 그렇습니다. – LMeyer

관련 문제