Planner 한테 더 좋은 선택 도와주기
SQLite query planner 가 어떤 인덱스 쓸지 결정에 sqlite_stat1 의 통계 사용. 통계 없으면 합리적 default, 있으면 skewed 데이터에 극적으로 더 좋은 plan.
알아둘 명령 두 개:
- ANALYZE — 전체 DB (또는 단일 테이블) 통계 수집. 큰 데이터 변경 후, 또는 deploy step 으로 실행.
- PRAGMA optimize — 모던 lightweight. SQLite 가 어떤 테이블이 re-analyze 필요한지 추적, 필요한 것만 다시 돌림. Connection close 마다 호출하기 싸.
Tip: 추천 모던 패턴: connection close 마다
PRAGMA optimize 호출. SQLite 가 (있으면) 뭐 필요한지 알아냄, 보통 거의 공짜. Long-running 앱에서 maintenance window 없이 통계 fresh 유지.