읽기 부부/쓰기 성능,MongoDb 대 Cassandra : 읽기/쓰기 신화? 카산드라 대 MongoDB에 관한 그물에 기사의
쓰기
일반적으로 데이터가 엄청난 경우 카산드라는 성능이 몽고보다 더 쓰기 있다고한다 읽었다. 아래 내용을 참조하십시오
카산드라의 스토리지 엔진은 데이터 세트가 커질수록 큰 데이터를 제공합니다. 쓰기는 MongoDB에서 더 문제가되는데, 부분적으로 b-tree 기반의 저장 엔진 때문이기도하지만, 데이터베이스 당 쓰기 잠금이 이기 때문입니다.
여기 내 질문이 있습니다. -이 진술은 여전히 맞습니까? Mongo는 데이터베이스 당 대신 문서 당 잠금을 지원합니다. 권리? 그래서 현재 캐스 산드라는 몽고 공연보다 여전히 뛰어나다 고 할 수 있겠습니까? 그렇다면 왜?
읽기
일반적으로 몽고 성능 카산드라보다 낫다하지만 카산드라보다 읽기에 더 나은 몽고을 만드는 것 어떤 이유를 찾지 못했습니다 읽으라고?
업데이트 : - 자레드 응답에서
그것은 나를 그냥 먼저 검색 한 다음 편집 할 수있다 몽고 같은 장소 편집에 마침내 대신에 그것을 추가하기 때문에 카산드라는 기록을 기존에/편집 삭제하면서 빠르게 이해하는 데 도움을 주었다. 이 몽고읽어에서 그들이 카산드라 에보다 MongoDB를의 스토리지 엔진에서 더 효율적이다. Cassandra의 스토리지 엔진은 데이터를 추가 전용 형식으로 저장하므로 쓰기가 매우 잘 수행됩니다 ( ). 이것은 검색 시간이 불량한 회전 디스크 드라이브의 을 유용하게 사용하지만 시리얼을 수행 할 수 있습니다. 매우 빠르게 씁니다. 그러나 단점은 읽음을 할 때 은 가장 최근 버전 인 을 호출자에게 반환하기 위해 여러 버전의 개체를 검사해야하는 경우가 종종 있습니다. MongoDB는 장소의 데이터를 업데이트합니다. 이것은 쓰기가 처리 될 때 더 많은 랜덤 IO를 수행한다는 것을 의미합니다. 은 하나의 b- 트리 룩업에서 디스크상의 객체의 정확한 위치를 찾을 수 있기 때문에 읽기 처리시 더 빠르다는 이점이 있습니다.
보다 쓰기에 더 나은 카산드라하게하지만 똑같은 일이 몽고 카산드라가 호출자
다른를로 돌아가려면 최신 버전을 얻기 위해 같은 레코드의 여러 버전을 통해 스캔하기 때문에 카산드라보다 느리게한다 이 blog의 이유는 왜 카산드라 쓰기
에만 차에 쓰기를 취할 수는 "단일 마스터"모델는MongoDB를 더 나은입니다. 보조 서버는 읽기 전용으로 만 사용할 수 있습니다.그래서 기본적으로 3 개의 노드 복제본 세트가있는 경우 마스터는 쓰기를 수행하는 이고 나머지 두 노드는 읽기 전용입니다. 이 은 쓰기 확장 성을 크게 제한합니다. 여러 개의 샤드를 배포 할 수 있지만 은 데이터 노드 중 1/3만이 쓸 수 있습니다. Cassandra 의 "다중 마스터"모델은 모든 서버에서 쓰기 작업을 수행 할 수 있습니다. 기본적으로 쓰기 확장 성은 클러스터에있는 서버 수인 수에 의해 제한됩니다. 클러스터에있는 서버가 많을수록 크기가 더 커집니다. 몽고 카산드라보다는 읽기에 더 나은 이유 같은 blog에서
보조 인덱스는 MongoDB의에서 일류의 구조입니다. 이렇게하면 이 중첩되어 있어도 MongoDB에 저장된 객체의 모든 속성을 쉽게 색인화 할 수 있습니다. 따라서이 보조 인덱스를 기반으로 쿼리하는 것이 매우 쉽습니다. 카산드라는 보조 색인 색인만을 지원합니다. 보조 색인은 단일 열 및 동등 비교로 제한됩니다. 대부분 기본 키로 질의 할 예정이라면 Cassandra가 잘 작동합니다.
한 수정/설명 : 여기 MongoDB를 3.2 이후 (~ 2 년 전 출시) 기본 스토리지 엔진이 WiredTiger있다가 (HTTPS를 참조하십시오 //docs.mongodb를. co.kr/manual/core/storage-engines)을 참조하십시오. – IanWhalen
하지만 Cassandra보다 읽기 성능이 빠른 이유는 무엇입니까? – emilly