외울 만한 'production-ready opener'
SQLite를 쓰는 production Python 앱은 대부분 connection을 여는 작은 헬퍼를 하나씩 갖게 돼. 매번 똑같은 PRAGMA 묶음을 거는 함수 말이야. 목록과 이유는 이래.
journal_mode = WAL— reader와 writer가 같이 굴러가게 해. track 4에서 다뤘어.synchronous = NORMAL— WAL과 함께라면 안전하면서 FULL보다 빨라.foreign_keys = ON— FK를 실제로 검사하게 만들어. 이것도 track 4에서.busy_timeout = 5000— 잠깐 걸린 락에 바로 터지지 않고 조금 기다리게 해.temp_store = MEMORY— 임시 B-tree를 디스크가 아니라 RAM에 둬.cache_size = -64000— read가 많은 워크로드를 위해 page cache를 64 MB로 잡아.mmap_size = 134217728— 큰 파일을 빠르게 읽으려고 128 MB를 mmap I/O로 잡아.
Self-reference: 피파의
backend/store/conversations.py가 정확히 이 묶음으로 모든 connection을 열어. cache와 mmap 크기만 프로젝트에 맞춰 조정했고. 100k row짜리 JSONL과 SQLite 기록 위에서도 WebUI가 즉각 반응하는 것처럼 느껴지는 건 이 일곱 설정 덕분이야.