大猫OPC

SQLite 的选择:什么时候够用,什么时候该换

阅读 4 更新于 2026-10-27

先说结论

站群是读多写少的系统:1.2 万个站每天被爬虫和访客读,后台一天只写几十次。这种负载,SQLite 完全够用。

选它的四个理由

  1. 备份就是复制文件:writable/citycms.db 拷走即可,不用 mysqldump
  2. 迁移零成本:换服务器不用装数据库、不用导账号
  3. 没有连接数问题:PHP-FPM 每个请求开文件,不占连接池
  4. 调试方便:本地一个文件,客户环境也是同一个文件

什么时候会撞墙

场景 SQLite 表现
读多写少(本站群) 很好
高频写入(每秒几十次) 写锁排队,容易 database is locked
多台机器共享 不支持(文件锁只在本地)
单表千万行 + 复杂聚合 慢,需要索引与预计算

一个真实的规模参考

  • 4 个租户,每租户最多 44,836 个站点位
  • 线上实际生成约 1.2 万个城市站
  • 单文件数据库,定期 VACUUM

这个量级 SQLite 没问题,因为绝大多数请求是同一批页面的重复读取,而且门户页还有文件缓存。

什么时候该换 MySQL

  • 需要多台 Web 服务器
  • 后台写入开始排队(客户同时批量生成)
  • 数据量或并发超出单机能力

迁移路径:把 Database 配置换掉,SQL 保持标准写法;避免用 SQLite 特有语法(如 INSERT OR REPLACE 要改成标准 upsert)。

本页内容对你有帮助吗? 感谢反馈(演示按钮,暂未接入后端)