(MongoDB) Index
* Index를 사용하는 이유 - 거대한 컬렉션에 대해 Read Operation이 느릴때 Read Operation시 Table scan(정보전체에 대한 읽기)이 일어남 거대한 컬렉션에 대해 Table scan이 일어난다면 서버는 Table scan이 일어나지 않도록 해야함 * Index의 효과 - 인덱스는 DB 테이블에 대한 동작속도를 높여주는 자료구조로, 저장된 자료에 대한 빠른조회를 위해 생성 (Index <-> Full Table Scan) - 인덱스는 키-필드 형태를 가지며, Scan을 거치지 않고 , 원하는 문서 위치주소로 바로 이동함 Document의 필드(들)에 index를 걸면, 데이터의 설정한 키 값을 가지고 document들을 가르키는 포인터 값으로 이뤄진 B-Tree를 만듭니다. * Index 생성시 알아둘 점 - 각 Index 는 8KB의 데이터 공간을 필요로 함 - Index생성시 write 및 update operation 성능을 떨어뜨림 - Index는 system.indexes 컬렉션에 저장됨 * 오름차순/내림차순에 대한 색인 - 키가 하나 일때는 키 방향이 무의미, 키가 하나 이상일 경우 고려함 - 단일키에서 특정 M키는 방향과 관계없이 명확함 - 최적화시 정렬방향을 고려함 {"username":1, "age": -1} 내림차순 최적화 {"username":1, "age": 1} 오름차순 최적화 {"comments.date":1} 내장문서 comments에 있는 date 키에 대한 색인 * Index의 종류 모든 MongoDB의 컬렉션은 기본적으로 _id필드에 인덱스가 존재합니다. 만약에 컬렉션을 만들때 _id필드를 따로 지정하지 않으면 mongod 드라이버가 _id필드 값을 ObjectId로 설정해줍니다. _id인덱스...