이 기사는 mongodb에 대한 관련 지식을 소개하고 MongoDB의 스토리지 엔진을 소개하는 데 도움이 되길 바랍니다!
지난번에 mongodb 클러스터에 대해 이야기했는데, 이는 마스터-슬레이브 클러스터와 샤드 클러스터로 나누어집니다. 샤드 클러스터의 샤드와 관련하여 다음 사항에 유의해야 합니다. :
특정 샤드 키(샤드 키는 컬렉션의 각 문서에 존재하는 인덱스 필드 또는 복합 인덱스 필드임)의 경우 모든 읽기 또는 쓰기 요청이 작동하게 됩니다. 단일 데이터 블록 또는 샤드에서 이로 인해 단일 샤드 서버에 과부하가 발생하고 자체 증가하는 샤드 키로 인해 쉽게 쓰기 문제가 발생할 수 있습니다. [권장: MongoDB 비디오 튜토리얼]
개별 분할 키의 경우 동일한 분할 키를 사용하는 많은 문서가 발생할 수 있습니다
이 경우 이러한 문서는 여러 데이터 블록으로 분할할 수 없으므로 mongodb에서 데이터의 균등한 배포가 제한됩니다.
샤드 키가 쿼리와 관련이 없기 때문에 쿼리 성능이 저하될 수 있습니다
위의 주의 사항을 숙지하고 실제 작업 문제에서도 유사한 문제에 직면하게 됩니다.
오늘 우리는 간단히 이해하겠습니다 mongodb의 스토리지 엔진은 무엇인가요? 플러그형 스토리지 엔진의 개념
WiredTiger 스토리지 엔진
inMemory 스토리지 엔진MMAPV1 엔진은
WiredTiger 스토리지 엔진이 더 좋기 때문에 현재 사용되지 않습니다. 멀티 코어 시스템의 처리 능력WiredTiger
잠금 세분성이 더 작음
MMAPV1 엔진 테이블 수준 잠금을 사용하면 단일 테이블에 동시 작업이 있는 경우 처리량이 제한됩니다WiredTiger
압축 방법이 더 발전되었습니다. 좋음WiredTiger는 MMAPV1
에 비해 메모리 공간 소비를 절약하는 접두사 압축을 사용하며 WiredTiger는 또한하드 디스크 리소스 소모를 크게 줄일 수 있는 압축 알고리즘
응용 프로그램 요청이 mongodb에 오면 mongodb가 처리를 수행하고 결과를 캐시에 저장합니다
캐시가 2G
에 도달하거나우리는 모두 손가락으로 생각할 수 있습니다. mongodb의 설계자가 어떻게 이런 상황을 허용할 수 있었는지, 그러면 해결책이 있을 것입니다 , 다음과 같이
저널 파일
은 관계형 데이터베이스의 트랜잭션 로그와 비슷합니다
journaling buffer
和 journal 文件
저널링을 도입한 목적
그러면 위에서 언급한 것처럼 mongodb에서는 데이터 손실이 발생하지 않습니다
여기서 우리는 저널링의 로깅 기능이 mongodb에서 쓰기 작업을 수행해야 할 때, 즉 추가, 삭제 또는 수정 시 저널링이 로그를 작성하므로 성능에 영향을 미칠 것이라는 점을 알아야 합니다.
하지만 mongodb는 읽습니다. 가져오기 작업을 수행하면 캐시에 기록되지 않으므로 저널링 로그에 기록되지 않습니다. 따라서 오늘 배운 내용은 이것뿐입니다. 편차가 있으면 정정해주세요
위 내용은 MongoDB 스토리지 엔진에 대한 심층 분석(개략도 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!