别小看 SQLite:很多项目根本不需要装数据库
给内部工具选数据库时,条件反射就是"装个 MySQL"。后来一个单机小工具我偷懒用了 SQLite,用到现在反而成了我的默认推荐。
SQLite 不是玩具——它是世界上部署量最大的数据库引擎(每台手机里都有)。它是进程内的库,不是服务:没有端口、没有用户、没有配置文件,整个数据库就是一个普通磁盘文件,拷走就是备份。
什么时候选它:
- 单机应用、桌面工具、小服务的本地存储
- 读多写少、写入方只有一个进程
- 数据量在几十 GB 以内(它实际能撑更大,但没必要)
| 维度 | SQLite | 客户端/服务器型 |
|---|---|---|
| 部署 | 零配置,一个文件 | 装服务、配账号、管备份 |
| 并发写 | 单写者(WAL 下读写可并行) | 多连接并发 |
| 网络访问 | 没有(进程内) | 天然支持 |
| 事务 | 完整 ACID | 完整 ACID |
反过来,什么时候别用它:多台机器要同时写、写入并发真的很高、需要细粒度权限管理。并发写是它的软肋——整库一把写锁,写多了就排队。
我的经验法则:如果数据只有一个写入方,SQLite 几乎总是更好的选择。省下来的运维时间,够写很多功能了。