为什么我用 SQLite 而不是 Postgres
我的服务器:2C2G
部署预算有限,我选了 2 核 2GB 的 VPS。
这决定了一切。
Postgres 的代价
| 资源 | Postgres | SQLite |
|---|---|---|
| 内存 | 200MB+ | < 10MB |
| 进程 | 独立 daemon | 应用内嵌 |
| 备份 | pg_dump | cp |
| 迁移 | ALTER TABLE 复杂 | 单文件复制 |
Postgres 是工业级,但对小博客过度设计。
SQLite 的真实能力
很多人以为 SQLite 是「玩具」,事实:
- WAL 模式下并发读写都行
- 单库支持 TB 级
- FTS5、JSON、CTE 都内置
- 2C2G 跑日 PV 10k 毫无压力
经验法则
选工具 = 匹配场景。 你的应用日活 1k 用 SQLite, 日活 100k 再考虑 Postgres。 :::
我的备份策略
# 每天一次
cp /data/myblog.db /backup/myblog.db.$(date +%Y%m%d)
# 保留 7 天
find /backup -name "myblog.db.*" -mtime +7 -delete就这样。单文件 = 单备份。
什么时候该换 Postgres?
- 多机部署
- 复杂事务(需要 SELECT FOR UPDATE)
- 单库 > 100GB
- 需要 pgvector 之类扩展
我的博客永远不会到这一步。