본문 바로가기

과목/빅데이터

MongoDB Indexing

인덱싱은 질의의 효율적인 해결을 지원한다. MongoDB는 질의문에 맞는 document를 선택하기 위해 collection의 모든 document를 다 스캔해야만 한다. 이러한 스캔은 매우 비효율적이고 MongoDB의 대량 데이터를 처리를 요구한다.


인덱스는 특별한 데이터 구조다. 탐색하기 좋은 방식으로 데이터 집합의 작은 부분을 저장한다.


인덱스를 생성하기 위해 ensureIndex() 메서드를 사용한다.


db.collection_name.ensureIndex({KEY : 1})

여기서 KEY는 인덱스를 생성하고 싶은 field의 이름이다. 1은 오름차순 -1은 내림차순이다.


db.mycol.ensureIndex({"title" : 1})


ensureIndex()에서 여러 field를 전달할 수 있고, 여러 field에 인덱스를 생성할 수 있다.


db.mycol.ensureIndex({"title : 1", "description" : -1})


ensureIndex() 메서드는 선택 사항인 다음과 같은 옵션 목록을 허용한다.


ParameterTypeDescription
backgroundBooleanBuilds the index in the background so that building an index does not block other database activities. Specify true to build in the background. The default value is false.
uniqueBooleanCreates a unique index so that the collection will not accept insertion of documents where the index key or keys match an existing value in the index. Specify true to create a unique index. The default value is false.
namestringThe name of the index. If unspecified, MongoDB generates an index name by concatenating the names of the indexed fields and the sort order.
dropDupsBooleanCreates a unique index on a field that may have duplicates. MongoDB indexes only the first occurrence of a key and removes all documents from the collection that contain subsequent occurrences of that key. Specify true to create unique index. The default value is false.
sparseBooleanIf true, the index only references documents with the specified field. These indexes use less space but behave differently in some situations (particularly sorts). The default value is false.
expireAfterSecondsintegerSpecifies a value, in seconds, as a TTL to control how long MongoDB retains documents in this collection.
vindex versionThe index version number. The default index version depends on the version of MongoDB running when creating the index.
weightsdocumentThe weight is a number ranging from 1 to 99,999 and denotes the significance of the field relative to the other indexed fields in terms of the score.
default_languagestringFor a text index, the language that determines the list of stop words and the rules for the stemmer and tokenizer. The default value is english.
language_overridestringFor a text index, specify the name of the field in the document that contains, the language to override the default language. The default value is language.


'과목 > 빅데이터' 카테고리의 다른 글

빅 데이터 강의  (0) 2018.05.01
MongoDB Aggregation  (0) 2018.04.28
MongoDB sort  (0) 2018.04.28
MongoDB Limit  (0) 2018.04.28
MongoDB Projection  (0) 2018.04.28