2012-05-02 2 views
0

질문은 매우 간단합니다. 컬렉션에 둘 이상의 인덱스를 가질 수 있습니까? 나는 할 수 있다고 생각하지만, 여러 인덱스를 검색 할 때마다 복합 인덱스에 대한 설명을 얻습니다. 그리고 그것은 제가 찾고있는 것이 아닙니다.mongodb에서 다른 정의를 가진 다중 인덱스

내가 원하는 것은 두 개의 간단한 별도의 색인을 가질 수 있는지 확인하는 것입니다. (내가 PHP를 사용하고 , 내가 한 번에 하나의 인덱스를 검색 할 수 있습니다 나는 PHP 코드 서식을 사용하는 것입니다,하지만 난

db.posts.ensureIndex({ my_id1: 1 }, {unique: true, background: true}); 
db.posts.ensureIndex({ my_id2: 1 }, {background: true}); 

을 이해합니다.

복합 인덱스가 아니에요 무엇인가 때문에 찾고 :.

  1. 하나의 인덱스는 고유하며 다른 하나는 아니다

  2. 나는 가장 빠른 옵션이 될 수 없습니다 생각 (일을 이해하는 링크를 엽니 다. 나는 그 이유가 더 느릴 것이라고 생각한다. link)

색인이 제대로 작동하는지 확인하고 싶습니다.

답변

2

인덱스는 가지고있는대로 정의 할 수 있습니다. MongoDB documentation :

얼마나 많은 색인이 있습니까? 인덱스는 순차적 검색을 포함한 키 검색을 매우 빠르게합니다. MongoDB가 매우 빠르게 업데이트 할 문서를 찾을 수 있기 때문에 키 업데이트도 빠릅니다. 그러나 생성 된 각 인덱스는 삽입 및 삭제에 일정량의 오버 헤드를 추가합니다. 기본 모음에 데이터를 쓰는 것 외에도 키를 B- 트리 색인에 추가해야합니다. 따라서 인덱스는 읽기 횟수가 쓰기 횟수보다 훨씬 많은 모음에 적합합니다. 쓰기 집약적 인 콜렉션의 경우 인덱스가 일부 경우 비생산적 일 수 있습니다. 대부분의 콜렉션은 읽기 집약적이므로 인덱스는 대부분의 상황에서 좋은 방법입니다.

두 필드를 모두 사용하는 쿼리를 실행할 때는 how Mongo will decide what index to use을 확인하는 것이 좋습니다.

Indexing Advice and FAQ 페이지도 참조하십시오. only one index per query, selectivity 등을 설명합니다.

p.s. 10gen의 slideshare deck은 컬렉션 당 최대 40 개의 인덱스가 있음을 나타냅니다.

+0

감사합니다. 예제에서 두 인덱스를 차례로 보지 않았습니다. (같은 스크립트에서). 나는 단지 확신하고 싶었다. 추가 정보를 주셔서 감사합니다, 그것은 매우 유용하게 될 것입니다. –

+0

MongoDB의 정보를 주셔서 감사합니다. 컬렉션 당 40 개의 인덱스가있을 수 있습니다. – The6thSense

관련 문제