본문 바로가기

IT/Database

[mongodb] 복합 index

name과 age 필드에 복합 인덱스를 걸었다고 가정하자..


db.users.ensureIndex({name:1, age:1}, {name:"idx_name_age_compound"})


지금까지는 이렇게 걸고나서 


name에 대한 index도 따로 걸어줬었는데


알고보니 위와같이 걸면 앞에 쓴 필드인 name에 대해서는 따로 걸 필요가 없었다...


실제 explain으로 쿼리해보니...


db.users.find({name:"kkyun"}).explain()


위에서 설정한 index를 사용하더라....


그리고 다른 필드를 섞어서 사용해도...


db.users.find({name:"kkyun", age:29}).explain()


위의 인덱스를 사용하더라~~~


데이터 양이 많아지면 인덱의 용량이 상당히 부담스러워진다...


메모리에 도큐먼트와 인덱스가 최대한 많이 올라갈 수 있도록


인덱스의 양을 최대한 줄여주자...