| 깊이 | 최대 항목 수 |
|---|---|
| 3 | 64 |
| 6 | 4,096 |
| 10 | 1,048,576 |
| 구분 | 설명 |
|---|---|
| 클러스터형 인덱스 | PRIMARY KEY 또는 UNIQUE NOT NULL 필드에 생성 (테이블당 1개) |
| 세컨더리 인덱스 | CREATE INDEX로 생성. 복합 쿼리나 검색 최적화용. 여러 개 가능 |
ObjectID 자동 생성 (타임스탬프 + 랜덤값 + 카운터)db.collection.createIndex({name: 1, age: -1})대량 데이터는 풀스캔이 더 빠를 수 있음
EXPLAIN 명령어로 실제 인덱스가 사용되는지 확인// MySQL 예시
EXPLAIN SELECT * FROM t1 JOIN t2 ON t1.c1 = t2.c1;
// MongoDB 예시
db.collection.find({ age: 25 }).explain("executionStats");
권장 순서: 같음 → 정렬 → 범위 → 카디널리티
| 항목 | 설명 |
|---|---|
| 같음 조건 | =, == 쿼리에 사용하는 필드 |
| 정렬 필드 | ORDER BY, sort 대상 |
| 범위 조건 | >, <, BETWEEN 등 다중 값 쿼리 대상 |
| 카디널리티 | 유니크 값 수가 많은 필드 우선 (예: email > gender) |
참고: 북스터디 - 면접을 위한 CS 전공지식 노트 (Chapter 4-5)