运行 SQLite 的几点心得
来源:jvns.ca — 2026-07-18
作者在搭建 Django 网站时选择 SQLite 作为生产数据库,并分享了她在运维 SQLite 过程中学到的一些基础却关键的经验。文章从 ANALYZE 优化、数据库清理、ORM 查询、备份策略以及多数据库拆分等角度说明,即使在小规模场景下,运行 SQLite 也并非毫无门道。
🔑 核心要点
- ANALYZE 命令能显著改善查询性能:对 FTS5 全文搜索表执行一次 ANALYZE 后,查询耗时从 5 秒骤降到约 0.05 秒。
- 清理数据要分批:一次性删除大量行会长时间锁定数据库,导致其他写入 worker 超时崩溃,小批量操作更稳妥。
- SQLite 备份有多种方案:可以用 VACUUM INTO 导出后通过 restic 备份,也可以用 Litestream 做增量连续备份。
- 多数据库拆分可行:将关联性较低的表拆到多个 SQLite 文件中,可降低耦合并提升可维护性。
- ORM 查询目前表现尚可:因为数据量很小,作者暂时没有对 Django ORM 生成的查询做特别的性能调优。
“It’s always kind of fun to see how long it takes me to learn sort of basic things about the technologies I’m using.”← 返回首页