DB/MongoDB(2)
-
인덱스를 사용하지 않아야 할 때
인덱스를 사용하지 않아야 할 때 실무에서 인덱스를 사용했을 때 컬렉션 스캔보다 속도가 느린 경우가 있었습니다. 인덱스를 걸면 수정, 삭제를 제외하곤 성능이 좋아져야 맞다고 생각했기에 의아했습니다. 원인은 인덱스로 생성한 필드가 중복이 많아 가져오는 도큐먼트가 많다는 것이었습니다. OREILLY 사의 몽고DB 완벽 가이드 책에 따르면 인덱스는 데이터 일부를 조회할 때 가장 효율적이며 어떤 쿼리는 인덱스가 없는 게 더 빠르다고 합니다. 인덱스는 컬렉션에서 가져와야 하는 부분이 많을수록 비효율적인데, 인덱스를 하나 사용하려면 두 번의 조회를 해야하기 때문입니다. 한 번은 인덱스 항목을 살펴보고, 또 한 번은 도큐먼트를 가리키는 인덱스의 포인터를 따라갑니다. 반만에 컬렉션 스캔을 할 때는 도큐먼트만 살펴보면 됩..
2023.04.08 -
MongoDB 인덱스
MongoDB index 백만 개 도큐먼트가 있는 컬렉션에서 조회할 때 index 유무 차이 index는 모든 값을 정렬된 순서로 보관하므로 인덱스 키로 도큐먼트를 정렬하는 작업이 훨씬 빨라지게 합니다. index (x) totalDocsExamined가 1000000이고, executionTimeMillis가 682인 걸 알 수 있습니다.(0.682초) { explainVersion: '1', queryPlanner: { namespace: 'study.User', indexFilterSet: false, parsedQuery: { username: { '$eq': 'user101' } }, queryHash: '7D9BB680',..
2023.03.09