目标
本地缓存库在频繁增删后留下大量空闲页,数据变小但磁盘占用仍高。本配方先查看页面数与空闲页数,再启用增量 auto_vacuum 并执行一次 VACUUM,使空闲页被回收,之后由增量真空持续保持紧凑,同时提醒 auto_vacuum 变更需在同连接上执行 VACUUM 才生效。
步骤要点
- 查看 page_count、freelist_count 与 auto_vacuum。
- 启用增量 auto_vacuum 并执行 VACUUM。
- 用 incremental_vacuum 参数回收全部空闲页。
- 验证空闲页接近零且文件变小。
sqlite3 app.db "PRAGMA page_count; PRAGMA freelist_count; PRAGMA auto_vacuum;"
排错提示
- auto_vacuum 变更需在同连接 VACUUM 才生效。
- 增量真空过于激进会产生碎片。
- 不会自动回收 WAL 空间。
适用边界
- 转换期间需要独占访问。
- 不负责 WAL 文件空间回收。