목차
간단한 리뷰
이제 주로 다음 엔진이 있습니다.
60s
데이터 베이스 몽고DB MongoDB 스토리지 엔진에 대한 심층 분석(개략도 포함)

MongoDB 스토리지 엔진에 대한 심층 분석(개략도 포함)

Dec 06, 2022 pm 05:00 PM
mongodb

이 기사는 mongodb에 대한 관련 지식을 소개하고 MongoDB의 스토리지 엔진을 소개하는 데 도움이 되길 바랍니다!

간단한 리뷰

지난번에 mongodb 클러스터에 대해 이야기했는데, 이는 마스터-슬레이브 클러스터와 샤드 클러스터로 나누어집니다. 샤드 클러스터의 샤드와 관련하여 다음 사항에 유의해야 합니다. :

  • 핫 데이터

특정 샤드 키(샤드 키는 컬렉션의 각 문서에 존재하는 인덱스 필드 또는 복합 인덱스 필드임)의 경우 모든 읽기 또는 쓰기 요청이 작동하게 됩니다. 단일 데이터 블록 또는 샤드에서 이로 인해 단일 샤드 서버에 과부하가 발생하고 자체 증가하는 샤드 키로 인해 쉽게 쓰기 문제가 발생할 수 있습니다. [권장: MongoDB 비디오 튜토리얼]

  • 분할할 수 없는 데이터 블록의 경우

개별 분할 키의 경우 동일한 분할 키를 사용하는 많은 문서가 발생할 수 있습니다

이 경우 이러한 문서는 여러 데이터 블록으로 분할할 수 없으므로 mongodb에서 데이터의 균등한 배포가 제한됩니다.

  • 쿼리 장애물

샤드 키가 쿼리와 관련이 없기 때문에 쿼리 성능이 저하될 수 있습니다

위의 주의 사항을 숙지하고 실제 작업 문제에서도 유사한 문제에 직면하게 됩니다.

오늘 우리는 간단히 이해하겠습니다 mongodb의 스토리지 엔진은 무엇인가요? 플러그형 스토리지 엔진의 개념

이제 주로 다음 엔진이 있습니다.

WiredTiger 스토리지 엔진

inMemory 스토리지 엔진
  • 스토리지 엔진이 처음 나왔을 때는 기본적으로 MMAPV1 스토리지 엔진이 사용되었습니다
  • MMAPV1 엔진, 이름만 보면 mmap을 사용하고 리눅스 메모리 매핑의 원리를 사용한다는 것을 알 수 있을 것입니다

MMAPV1 엔진은

WiredTiger 스토리지 엔진이 더 좋기 때문에 현재 사용되지 않습니다. 멀티 코어 시스템의 처리 능력

WiredTiger

잠금 세분성이 더 작음

MMAPV1 엔진 테이블 수준 잠금을 사용하면 단일 테이블에 동시 작업이 있는 경우 처리량이 제한됩니다
  • 그리고 WiredTiger는 동시성과 처리량을 향상시키는 문서 수준 잠금을 사용합니다

WiredTiger

압축 방법이 더 발전되었습니다. 좋음
  • WiredTiger는 MMAPV1

    에 비해 메모리 공간 소비를 절약하는 접두사 압축을 사용하며 WiredTiger는 또한

    하드 디스크 리소스 소모를 크게 줄일 수 있는 압축 알고리즘

WiredTiger 엔진의 쓰기 원리

  • 위 그림에서 WiredTiger 디스크 쓰기 원리도 매우 간단하다는 것을 알 수 있습니다

응용 프로그램 요청이 mongodb에 오면 mongodb가 처리를 수행하고 결과를 캐시에 저장합니다

캐시가 2G

에 도달하거나

60s

타이머가 만료되면 캐시의 데이터가 플러시됩니다. 주의 깊게 xdm이 알게 되면 지금 정확히 59초가 되면 1G 이상이면 캐시의 데이터가 디스크에 동기화되지 않고 mongodb가 비정상적으로 중단됩니다. 데이터를 잃어버리셨나요?

MongoDB 스토리지 엔진에 대한 심층 분석(개략도 포함)

우리는 모두 손가락으로 생각할 수 있습니다. mongodb의 설계자가 어떻게 이런 상황을 허용할 수 있었는지, 그러면 해결책이 있을 것입니다 , 다음과 같이

  • 위 그림과 같이 extra one 저널링 버퍼
    mongodb 추가, 삭제, 수정 명령을 저장하는 버퍼

저널 파일

MongoDB 스토리지 엔진에 대한 심층 분석(개략도 포함)은 관계형 데이터베이스의 트랜잭션 로그와 비슷합니다

journaling buffer 和  journal 文件저널링을 도입한 목적

  • 저널링은 예상치 못한 실패 후 빠른 복구로 인해 mongod b 데이터베이스를 활성화할 수 있습니다
저널링 로그 기능

저널링의 로그 기능은 Redis의 지속성과 약간 비슷해 보이지만 유사하다고만 말할 수 있습니다
  • mongodb에서 2.4, 이미기본값입니다. Journaling 기능을 켜면, mongod 인스턴스를 시작할 때 서비스에서 데이터를 복원해야 하는지 여부를 확인합니다

그러면 위에서 언급한 것처럼 mongodb에서는 데이터 손실이 발생하지 않습니다

여기서 우리는 저널링의 로깅 기능이 mongodb에서 쓰기 작업을 수행해야 할 때, 즉 추가, 삭제 또는 수정 시 저널링이 로그를 작성하므로 성능에 영향을 미칠 것이라는 점을 알아야 합니다.

하지만 mongodb는 읽습니다. 가져오기 작업을 수행하면 캐시에 기록되지 않으므로 저널링 로그에 기록되지 않습니다. 따라서 오늘 배운 내용은 이것뿐입니다. 편차가 있으면 정정해주세요

위 내용은 MongoDB 스토리지 엔진에 대한 심층 분석(개략도 포함)의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Clothoff.io

Clothoff.io

AI 옷 제거제

Video Face Swap

Video Face Swap

완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)

뜨거운 주제

Mongodb vs. Oracle : NOSQL 및 관계형 접근법 탐색 Mongodb vs. Oracle : NOSQL 및 관계형 접근법 탐색 May 07, 2025 am 12:02 AM

다른 응용 프로그램 시나리오에서 MongoDB 또는 Oracle을 선택하는 것은 특정 요구에 따라 다릅니다. 1) 많은 양의 구조화되지 않은 데이터를 처리해야하고 데이터 일관성에 대한 높은 요구 사항이없는 경우 MongoDB를 선택하십시오. 2) 엄격한 데이터 일관성과 복잡한 쿼리가 필요한 경우 Oracle을 선택하십시오.

MongoDB 컬렉션에서 문서를 업데이트하는 다양한 방법 MongoDB 컬렉션에서 문서를 업데이트하는 다양한 방법 Jun 04, 2025 pm 10:30 PM

MongoDB에서 문서를 업데이트하는 방법에는 다음이 포함됩니다. 1. 기본 업데이트를 수행하기 위해 UpdateOne 및 Updatemany 방법을 사용합니다. 2. $ set, $ inc 및 $ push와 같은 운영자를 사용하여 고급 업데이트를 수행하십시오. 이러한 방법과 운영자를 사용하면 MongoDB에서 데이터를 효율적으로 관리하고 업데이트 할 수 있습니다.

MongoDB의 목적 : 유연한 데이터 저장 및 관리 MongoDB의 목적 : 유연한 데이터 저장 및 관리 May 09, 2025 am 12:20 AM

MongoDB의 유연성은 다음과 같이 반영됩니다. 1) 모든 구조에 데이터를 저장할 수 있고, 2) BSON 형식 사용 및 3) 복잡한 쿼리 및 집계 작업을 지원합니다. 이러한 유연성은 가변 데이터 구조를 다룰 때 잘 수행되며 현대적인 애플리케이션 개발을위한 강력한 도구입니다.

MongoDB에서 모든 데이터베이스를 보는 방법 MongoDB에서 모든 데이터베이스를 보는 방법 Jun 04, 2025 pm 10:42 PM

MongoDB에서 모든 데이터베이스를 보는 방법은 "showdbs"명령을 입력하는 것입니다. 1.이 명령은 비어 있지 않은 데이터베이스 만 표시합니다. 2. "사용"명령을 통해 데이터베이스를 전환하고 데이터를 삽입하여 표시 할 수 있습니다. 3. "로컬"및 "구성"과 같은 내부 데이터베이스에주의를 기울이십시오. 4. 드라이버를 사용하는 경우 "ListDatabases ()"메소드를 사용하여 자세한 정보를 얻어야합니다. 5. "db.stats ()"명령은 자세한 데이터베이스 통계를 볼 수 있습니다.

MongoDB vs. Oracle : 문서 데이터베이스 대 관계형 데이터베이스 MongoDB vs. Oracle : 문서 데이터베이스 대 관계형 데이터베이스 May 05, 2025 am 12:04 AM

소개 현대 데이터 관리 세계에서 올바른 데이터베이스 시스템을 선택하는 것은 모든 프로젝트에 중요합니다. 우리는 종종 선택에 직면 해 있습니다. MongoDB와 같은 문서 기반 데이터베이스 또는 Oracle과 같은 관계형 데이터베이스를 선택해야합니까? 오늘 저는 Mongodb와 Oracle의 차이점의 깊이로 당신을 데려 가서 장단점을 이해하고 실제 프로젝트에서 그것들을 사용하는 경험을 공유하도록 도와 줄 것입니다. 이 기사에서는 기본 지식으로 시작 하여이 두 가지 유형의 데이터베이스의 핵심 기능, 사용 시나리오 및 성능 성능을 점차적으로 심화시킵니다. 새로운 데이터 관리자이든 숙련 된 데이터베이스 관리자이든이 기사를 읽은 후 프로젝트에서 MongoDB 또는 ORA를 선택하고 사용하는 방법에 참여하게됩니다.

MongoDB에서 컬렉션을 작성하기위한 명령 및 매개 변수 설정 MongoDB에서 컬렉션을 작성하기위한 명령 및 매개 변수 설정 May 15, 2025 pm 11:12 PM

MongoDB에서 컬렉션을 작성하라는 명령은 DB.CreateCollection (이름, 옵션)입니다. 특정 단계에는 다음이 포함됩니다. 1. 기본 명령 DB.CreateCollection ( "MyCollection")을 사용하여 컬렉션을 만듭니다. 2. 캡핑, 크기, max, stac

MongoDB 컬렉션에서 문서를 정렬하는 작업 명령 MongoDB 컬렉션에서 문서를 정렬하는 작업 명령 Jun 04, 2025 pm 10:27 PM

MongoDB에서는 Sort () 메소드를 사용하여 컬렉션에 문서를 정렬 할 수 있습니다. 1. 기본 사용 : 필드와 정렬 순서를 지정하여 정렬 (1은 오름차순이고 -1은 하강합니다). 2. 고급 사용 : DB.Products.find (). Sort ({카테고리 : 1, 가격 : -1})와 같은 여러 필드에 따라 정렬 할 수 있습니다. 3. 성능 최적화 : 인덱싱을 사용하여 오버 소싱 및 페이징 분류를 피하십시오.

Mongodb는 운명입니까? 신화를 없애는 것 Mongodb는 운명입니까? 신화를 없애는 것 May 03, 2025 am 12:06 AM

MongoDB는 쇠퇴 할 운명이 아닙니다. 1) 이점은 유연성과 확장성에 있으며 복잡한 데이터 구조 및 대규모 데이터를 처리하는 데 적합합니다. 2) 단점에는 높은 메모리 사용량과 산 거래 지원의 늦은 도입이 포함됩니다. 3) 성능 및 거래 지원에 대한 의문에도 불구하고 MongoDB는 여전히 기술 개선 및 시장 수요에 의해 주도되는 강력한 데이터베이스 솔루션입니다.

See all articles