인덱스 모양 3 가지
- Single-column —
CREATE INDEX i ON t(col). 자주 걸러내는 컬럼에 붙여. - Composite —
CREATE INDEX i ON t(a, b). 순서가 전부야.a만으로 거르거나a와b를 같이 걸면 도움이 되는데,b만으로는 못 써. 인덱스 항목이 (a, b) 순으로 줄 서 있다고 생각하면 돼. a로 이분 탐색하고, 그 안에서 b로 다시 좁히는 거야. - Unique —
CREATE UNIQUE INDEX i ON t(col). 인덱스에 중복 금지 제약이 얹혀. 컬럼에UNIQUE를 선언하면 SQLite가 이걸 알아서 만들어.
Tip: Composite 인덱스의 컬럼 순서를 정할 때는 값이 가장 다양한 컬럼, 그러니까 selectivity가 높은 컬럼을 앞에 둬. 다만 가장 자주 도는 query가 덜 촘촘한 컬럼으로 먼저 거르는 모양이라면 그쪽을 앞에 두는 게 맞아.