복붙노트

[MONGODB] 왜 MongoDB를 사용 인덱스 교차합니까?

MONGODB

왜 MongoDB를 사용 인덱스 교차합니까?

나는 하나의 컬렉션 데이터베이스를 생성 만 2 필드 (그리고 ID)와 문서를 저장합니다 :

public class Hamster
{
    public ObjectId Id;
    public string Name;
    public int Age;
}

또한 각 필드에 대한 인덱스를 만들었습니다.

나는 두 필드 필터링 쿼리를 실행할 때 나는 수집 스캔을 줄이고 성능을 향상시키기 위해 색인 사거리를 사용하여 두 인덱스를 결합 할 전망이다. 이 경우는 결코 없다. 아직 인덱스 교차를 유도하기 위해 관리하지 않았습니다.

그럼, 인덱스 교차를 적용에서 MongoDB를 중지?

해결법

  1. ==============================

    1.당신은 (참) 설명 사용할 때 최적화가되지 인덱스 교차 선택 함을 사용하여 고려 것을 볼 수있다 :

    당신은 (참) 설명 사용할 때 최적화가되지 인덱스 교차 선택 함을 사용하여 고려 것을 볼 수있다 :

    "cursor" : "BtreeCursor Age", // Chosen plan.
    ...
    "allPlans" : [
       {
           "cursor" : "BtreeCursor Age",
           ...
       },
       {
           "cursor" : "BtreeCursor Name",
           ...
       },
       {
           "cursor" : "Complex Plan", // Index intersection.
           ...
       }
    ]
    

    충분한 복합 인덱스가 있다면 MongoDB를가 교차 선택하지 않습니다. 다른 제한은 인덱스 교차로에 대한 락스 티켓에서 찾을 수 있습니다 :

    MongoDB를은 덜 실제로 사용 할 수 있습니다 교차로에 많은 한계가있다.

  2. from https://stackoverflow.com/questions/24786853/why-doesnt-mongodb-use-index-intersection by cc-by-sa and MIT license