数据库 SQLite选型

别小看 SQLite:很多项目根本不需要装数据库

给内部工具选数据库时,条件反射就是"装个 MySQL"。后来一个单机小工具我偷懒用了 SQLite,用到现在反而成了我的默认推荐。

SQLite 不是玩具——它是世界上部署量最大的数据库引擎(每台手机里都有)。它是进程内的库,不是服务:没有端口、没有用户、没有配置文件,整个数据库就是一个普通磁盘文件,拷走就是备份。

什么时候选它:

维度SQLite客户端/服务器型
部署零配置,一个文件装服务、配账号、管备份
并发写单写者(WAL 下读写可并行)多连接并发
网络访问没有(进程内)天然支持
事务完整 ACID完整 ACID

反过来,什么时候别用它:多台机器要同时写、写入并发真的很高、需要细粒度权限管理。并发写是它的软肋——整库一把写锁,写多了就排队。

我的经验法则:如果数据只有一个写入方,SQLite 几乎总是更好的选择。省下来的运维时间,够写很多功能了。