디스크 hygiene + 메모리 튜닝
Storage 레이어 SQLite 성능에 영향 주는 노브 3 개:
- VACUUM — DB 파일 재구축, 삭제 row 공간 회수 + B-tree defrag. 느림 (파일 전체 write), 큰 삭제 후 주기적 유용.
- PRAGMA page_size = N — B-tree storage 단위. 기본 4096 byte (3.12 이후). 큰 page = sequential scan 의 I/O 적음 + 작은 row 의 낭비 공간 많음. 테이블 만들기 전 설정, 또는 변경 후 VACUUM.
- PRAGMA cache_size = N — in-memory page cache. 음수 값 = kibibyte (예: -64000 = 64 MB). 큰 cache = disk hit 적음.
Warning:
VACUUM 이 DB 사이즈의 최대 2x 임시 디스크 필요. 50 GB DB 면 100 GB 여유. 계획. auto_vacuum 이 work 를 incrementalize 하는 대안인데 자체 트레이드오프 있음.