몽고db최적화 / 몽고 최적화 / mongo db optimization/ opt / mongodb index / 빠르게 / slow
mongodb 최적화
Follow Indexing with MongoDB, Apr 06, 2010
db.collection.ensureIndex({"name" : 1})
는 name 을 ascending order 로 정렬해서 index 를 만든다는 이야기 이다.
db.collection.ensureIndex({"name" : 1}, {unique: true})
이런식으로 uniqueness 를 보장할 수도 있다.
db.collection.ensureIndex({"name" : 1}, {background: true})
- Index Creation Tutorials, mongoDB homepage
이렇게 만들어진 index 는 관련 작업을 할 때 mongoDB 가 알아서 가져다 쓴다.
query 의 속도는 높여주지만, insertion 의 시간은 느려진다. insertion 할 때마다 index 를 자동으로 만들기 때문이다.(?)
index의 total size 를 RAM 에 맞추는 것이 좋다고 한다.
인덱스에 대한 성능을 측정 하려면 위의 문서를 참고하자.
- Aggregation Pipeline –> Pipeline Operators and Indexes
에서 aggregation 중 index 의 효과를 볼 수 있는 method 에 대해 이야기 해준다.
$match
$sort
$limit
$skip
unsharded collection 들에서는 aggregation pipeline 이 명령을 수행하는데 indexing 된 field 만 사용한다면 index 가 pipeline 을 cover 할 수 있다고 한다.
$match
, $limit
, $skip
로 filtering 을 한 이후에 field 가 indexing 되어 있는 녀석들이라면 indexing 이 이용된다.(?)
index 개수 제한
하나의 collection 에서 64 개의 index 까지 가능
댓글 없음:
댓글 쓰기