이 글은 기계 번역의 미러 문서이며, 원본 기사로 바로 이동하려면 여기를 클릭해 주세요.

보기: 5609|회답: 2

MongoDB 색인 보기 및 생성

[링크 복사]
게시됨 2022. 2. 11. 오후 5:46:29 | | | |
몽고DB 지수

인덱스가 없으면 MongoDB는 컬렉션 내 모든 파일을 스캔하고 데이터를 읽을 때 쿼리 기준에 부합하는 레코드를 선택해야 합니다.

전체 세트를 스캔하는 이런 쿼리 효율성은 매우 낮으며, 특히 대량의 데이터를 처리할 때 쿼리가 수십 초에서 몇 분까지 걸릴 수 있어 웹사이트 성능에 치명적입니다.

인덱스는 인덱스 위에서 쉽게 읽을 수 있는 데이터 집합에 저장되는 특수 자료구조이며, 인덱스는 데이터베이스 테이블 내 하나 이상의 열의 값을 정렬하는 구조입니다.

복습:

MongoDB 공통 쿼리 명령어
https://www.itsvse.com/thread-10169-1-1.html

실행 계획을 조회하세요

예시 문장들:

아래 그림에서 보이는 인덱스(winningPlan:COLLSCAN)를 생성하지 않고:



explain() 함수는 다양한 매개변수를 받을 수 있으며, 다양한 매개변수를 설정하여 더 상세한 쿼리 계획을 확인할 수 있습니다.

매개변수는 다음과 같습니다:queryPlanner (기본값), 실행 통계, 모든 계획 실행

execute explain("executionStats")을 사용하면 실행 계획에 더 많은 통계가 포함되어 있음을 알 수 있습니다.

매개 변수의미
총 키스검사인덱스 스캔 횟수
totalDocsExamined문서 스캔 횟수
n반환됨반환된 결과 수
실행 시간밀리스실행은 시간이 많이 걸립니다
실행 성공처형이 성공했는지?

인덱스 생성

MongoDB는 createIndex() 메서드를 사용하여 인덱스를 생성합니다.

버전 3.0.0 이전에는 인덱스 생성 메서드가 db.collection.ensureIndex()였으며, 이후 버전에서는 db.collection.createIndex() 메서드를 사용했습니다.

단일 인덱스 생성


복합 인덱스를 만드세요

구문에서 키 값은 생성하려는 인덱스 필드이며, 1은 오름차순 인덱스를 생성하기 위해 지정되며, 내림차순으로 인덱스를 만들고 싶다면 -1을 지정할 수 있습니다.백그라운드에서 인덱스가 생성된다는 것을 명시하기 위해 배경즉, "배경" 선택 매개변수를 추가하는 것입니다. "background"는 기본적으로 false로 표시됩니다.

쿼리 인덱스

명령어는 다음과 같습니다:



인덱스를 삭제하세요

모든 인덱스를 삭제하세요

지정된 인덱스를 삭제하세요

(끝)




이전의:대만 사용자들의 등록을 제한하는 방법, 자유롭게 정보를 게시하는 방법, 그리고 글쓰기 방법에 대한 조언 요청.
다음:[실제 전투]. NET/C#은 StackExchange를 사용하여 캐시를 내보냅니다. Redis 퍼지 쿼리
 집주인| 게시됨 2022. 2. 11. 오후 5:49:16 |
느린 쿼리 분석 과정:

1. 느린 쿼리 로그(system.profile)를 사용하여 200ms를 초과하는 문장을 찾으세요

2. 그 다음 .explain()를 사용해 영향을 받은 행 수를 분석하고 왜 200ms를 초과하는지 분석합니다

3. 인덱스를 추가해야 하는지 결정하세요

느린 쿼리 활성화하기:


매개 변수:

0: 닫혔으며, 데이터가 수집되지 않습니다.
1: 느린 쿼리 데이터를 수집하며, 기본값은 100밀리초입니다.
2: 모든 데이터를 수집한다

결과를 검토하세요:


참고: 인덱스는 기본적으로 메모리 내에서 영구적이라고 할 수 있습니다. 데이터 양이 1억에 도달하면 인덱스 수가 적을수록 더 좋습니다. 왜냐하면 인덱스가 많은 메모리를 차지하기 때문입니다. 인터넷에 따르면 100만 개의 인덱스가 약 5천만 메모리를 차지합니다. 만약 1억 개라면 5G 메모리를 차지하게 됩니다.

게시됨 2022. 2. 13. 오후 4:30:52 |
박식한...
면책 조항:
Code Farmer Network에서 발행하는 모든 소프트웨어, 프로그래밍 자료 또는 기사는 학습 및 연구 목적으로만 사용됩니다; 위 내용은 상업적 또는 불법적인 목적으로 사용되지 않으며, 그렇지 않으면 모든 책임이 사용자에게 부담됩니다. 이 사이트의 정보는 인터넷에서 가져온 것이며, 저작권 분쟁은 이 사이트와는 관련이 없습니다. 위 내용은 다운로드 후 24시간 이내에 컴퓨터에서 완전히 삭제해야 합니다. 프로그램이 마음에 드신다면, 진짜 소프트웨어를 지원하고, 등록을 구매하며, 더 나은 진짜 서비스를 받아주세요. 침해가 있을 경우 이메일로 연락해 주시기 바랍니다.

Mail To:help@itsvse.com