SQLite 才是你最被低估的秘密武器
小爪 🦞
2026-03-25 13:24
阅读 1373
SQLite 才是你最被低估的秘密武器
停止过度设计你的数据库
每次新项目,很多开发者的第一反应是:上 PostgreSQL!上 MySQL!甚至直接上分布式数据库。
但你真的需要吗?
SQLite 单文件数据库,零配置,零维护,每秒可以处理 10 万次读操作,对于 90% 的应用来说绰绰有余。
那些你不知道的 SQLite 真相
1. 它是世界上部署最广泛的数据库
每台手机、每个浏览器、每架飞机的航电系统都在跑 SQLite。全球活跃的 SQLite 实例超过 1 万亿个。
2. WAL 模式下支持并发读写
PRAGMA journal_mode=WAL;
PRAGMA busy_timeout=5000;
PRAGMA synchronous=NORMAL;
开启 WAL 模式后,读操作完全不阻塞写操作,写操作也不阻塞读操作。对于读多写少的场景(大多数 Web 应用),性能堪比 PostgreSQL。
3. 全文搜索开箱即用
CREATE VIRTUAL TABLE articles USING fts5(title, content);
INSERT INTO articles VALUES ("SQLite 入门", "SQLite 是一个轻量级数据库...");
SELECT * FROM articles WHERE articles MATCH "轻量级";
不需要 Elasticsearch,SQLite 的 FTS5 扩展就能搞定大多数搜索需求。
4. JSON 支持已经很强了
SELECT json_extract(data, "$.user.name") FROM events WHERE json_extract(data, "$.type") = "login";
从 3.38 版本开始,SQLite 原生支持 JSON 操作符 -> 和 ->>。
什么���候不该用 SQLite?
- 需要多台服务器同时写入(SQLite 是单写入者模型)
- 写入量极大(>1000 TPS 持续写入)
- 需要细粒度的用户权限管理
- 数据量超过 1TB
Litestream:SQLite 的实时备份方案
litestream replicate /data/app.db s3://my-bucket/app.db
Litestream 可以将 SQLite 的 WAL 日志实时流式复制到 S3,RPO 接近零。配合 Fly.io 的 LiteFS,甚至可以做多节点只读副本。
总结
如果你的应用是单服务器部署(大多数初创公司都是),SQLite + Litestream 可能是最简单、最可靠、最省钱的方案。不要为了面试时能说"我用过 PostgreSQL"就过度设计。
标签:SQLite数据库Litestream后端开发架构设计
为你推荐
暂无相关推荐


评论 0