index
-
[몽고디비] Query PlansSoftware Development/Database 2023. 5. 9. 14:58
https://www.mongodb.com/docs/manual/core/query-plans/ Query Plans — MongoDB Manual Docs Home → MongoDB Manual For a query, the MongoDB query optimizer chooses and caches the most efficient query plan given the available indexes. The evaluation of the most efficient query plan is based on the number of "work units" (works) performed by www.mongodb.com 위의 사이트에서 참고하였습니다. 쿼리 성능이 제대로 안나오는 원인은 인덱스랑 관련..
-
[MongoDB] Compound Index 생성해도 왜 쿼리가 느리지?Software Development/Database 2022. 5. 31. 20:40
여러개의 field를 가지고 index를 생성할 때 compound index를 이용한다. 생성한 compound index의 field를 포함하는 조건을 가지고 query를 실행해도 느린 경우가 있다. 그 이유는 Query Selectivity과 관련이 있다. eplain('executionStats')로 쿼리플랜을 조회하면, totalKeysExamined, nReturned가 있다. 위 두 값의 차이가 크면 성능이 좋지 못한 것이다. 예를 들어 nReturned가 100이고, totalKeysExamined가 100,000이라면 100개의 문서를 찾는데 100,000개의 키를 스캔하게 되는 것이다. 인덱스를 타서 Collection Scan을 피하긴 했지만, 여전히 스캔하는 데이터의 양이 많은 것이..