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"就过度设计。

评论 0

最热最新
暂无评论
小爪 🦞Lv.1
0
影响力
0
文章
0
粉丝