有一款数据库,不需要安装、不需要配置、没有用户名密码、连一个独立的服务器进程都没有,却安装在这个星球上几乎每一台智能手机、每一台主流电脑和无数电视机、汽车、飞机里。它就是SQLite。Fireship频道的《SQLite in 100 Seconds》用短短100秒讲完了它的核心卖点,视频本身短到极致,但每一句话背后都藏着一整套数据库工程的浓缩知识。本文把这100秒逐句展开:它从一艘军舰上的项目起家,如何做到“全球部署量第一”,它的单文件设计为何是天才之作又暗藏哪些坑,以及为什么在2026年的AI应用时代,这个25年前的老项目反而迎来了第二次爆发。看完本文,等于把这条视频看了十遍,还多懂一层。
| 项目 | 内容 |
|---|---|
| 视频标题 | SQLite in 100 Seconds(100秒看懂SQLite) |
| 频道 | Fireship(主理人 Jeff Delaney) |
| 发布时间 | 2021年前后(据频道页面) |
| 播放量 | 百万级(据频道页面,数据随时间增长,请以频道实际显示为准) |
| 视频形式 | “100 Seconds of Code”系列快节奏科普,英文字幕紧凑演示 |
数据说明:本文写作时搜索与抓取工具受限,未能实时核验精确播放量与发布日期,以上为量级描述,具体数字以YouTube频道页面为准。视频在频道内可通过检索标题"SQLite in 100 Seconds"直达。
这条视频虽短,叙事结构却极其完整,可以拆成五个递进的主张,Fireship按照“颠覆认知→解释原理→演示上手→下判断”的顺序展开。
视频开场先给观众一个反直觉的事实:你以为的“主流数据库”是Oracle、MySQL、Postgres,但从“装进了多少台设备”这个维度看,SQLite吊打所有人。你的iPhone和Android手机里都内置了它——iOS的应用数据、通话记录、短信存储在底层用的就是SQLite;Android系统同样如此。Chrome和Firefox等浏览器内部用它存浏览数据;Windows、macOS等主流操作系统以及大量桌面软件(比如VS Code的开发者状态存储,其工作区状态就存于一个SQLite文件state.vscdb)也离不开它。SQLite官方甚至专门维护一个页面来陈述这个事实:《Most Widely Deployed and Used Database Engine》(部署最广的数据库引擎,据sqlite.org/mostdeployed.html)。
这是视频最关键的技术定性。MySQL、Postgres这一类是“客户端-服务器”数据库:数据库作为独立进程运行,监听网络端口,应用通过TCP连接、用账号密码鉴权,再通过SQL协议通信。而SQLite没有服务器——“serverless”这个词最初的含义就是它(比云计算圈把serverless重新定义成“函数即服务”早了十几年)。SQLite的本质是一个嵌入式的C语言函数库,你的应用直接链接它,数据库引擎和你的程序跑在同一个进程里,读写本地文件就是全部的“数据库操作”。没有端口、没有守护进程、没有DBA。
SQLite把所有数据——表、索引、触发器、视图,甚至一张巨大的表里几十亿行数据——全部装进一个普通的跨平台文件里。你可以把这个文件拷贝到U盘、通过git提交、用邮件发给别人,接收方用任何平台的SQLite都能直接打开。官方对其文件格式做出了惊人承诺:保持向后兼容至2050年——也就是说今天生成的数据库文件,25年后依然能被读取(据sqlite.org/about.html)。对长期归档场景,这个承诺价值千金。
尽管轻量,SQLite支持绝大多数标准SQL:多表JOIN、触发器、视图、事务,以及完整的ACID特性(原子性、一致性、隔离性、持久性)。它甚至默认开启完整外键约束之外的诸多严格校验,并提供WAL(Write-Ahead Logging,预写日志)模式来大幅提升并发读写性能。视频里Fireship用Node.js演示:通过better-sqlite3这个npm包,几行代码就能建库、建表、插入、查询,全程零配置——这是“100 Seconds”系列的标准高潮段落,也是它想传达的核心体验:数据库从未如此触手可及。
视频的收尾金句是"probably enough for your next app"(对你的下一个应用来说,它大概率够用)。这句半开玩笑的话,其实是过去几年开发者社区一场大讨论的浓缩:我们默认给每个新项目配Postgres、Docker、微服务,是不是一种过度工程?
SQLite的诞生故事在软件工程圈广为流传:2000年5月,D. Richard Hipp受雇于美国通用动力公司的一个转包合同,为美国海军的导弹驱逐舰开发软件。军舰上的程序原本使用类似Informix的服务器型数据库,但军方环境有一个苛刻限制:程序基于DOS运行,根本不存在一个可以“连接”的常驻服务器进程,而且系统不能依赖管理员配置。Hipp于是动手写了一个嵌入式数据库,SQLite就此诞生(据SQLite官方历史资料及Hipp本人多次访谈)。这段起源解释了SQLite一切设计哲学的根源:为无人管理的极端环境而生——不能假设有DBA、有网络、有稳定的进程管理。
SQLite内部是一个漂亮的分层架构:底层的B-tree存储引擎负责数据落盘(数据库文件本质上就是一组B-tree页面),中间的页缓存(pager)负责页面调度与事务日志,上层把SQL编译成一套自有字节码,由一个叫VDBE(Virtual Database Engine)的虚拟机执行。这套“SQL→字节码→虚拟机”的设计与Java虚拟机的思路异曲同工,也让SQLite成为学习“数据库内部原理”的最佳教材之一——因为它足够小,一个人真的可以读完。
SQLite最令业界敬畏的是它的测试工程。官方测试文档(sqlite.org/testing.html)披露:SQLite拥有数倍于库代码规模、按官方口径达百倍量级的测试代码;采用变异测试(mutation testing)验证测试用例本身的有效性;核心代码追求100%的MC/DC(修正条件判定覆盖)——这是航空电子等安全关键领域才要求的最高覆盖率标准。此外它还维护着TH3专用测试套件,并用仿真模拟了从断电、磁盘损坏到内存错误的各类灾难场景。一个免费送人的公版软件做到这个程度,是因为它把“这玩意儿装在世界每个角落、坏了没人能修”写进了产品目标。
SQLite有三个常被引用的反常识事实。第一,它的版权是公有领域(public domain),不使用任何开源许可证,等于作者放弃了全部权利。第二,项目不接受外部代码贡献(据sqlite.org/copyright.html),与“开源协作”的潮流背道而驰——理由是保持代码库小到可以完全掌控。第三,官方页面幽默地放着一份基于本笃会修道院规则的“道德准则”替代行为准则。治理上,核心开发者由Hipp通过悬赏(bounty)制度招募并长期雇用,资金来自商业许可与支持服务。这套模型证明了软件工程质量与“众包协作”之间没有必然绑定。
这条2021年的视频为什么到2026年仍在被反复转发?因为SQLite正处在第二轮爆发期:
一个2000年诞生、2005年后几乎“定版”的项目,在云计算和AI时代反而越活越年轻——这是理解当代软件“ boring tech 复兴”(无聊技术复兴)思潮的最佳案例。
“部署量第一”——成立,但要定义清楚。 这个头衔来自SQLite官方页面,属于“自己宣布自己的纪录”。但从部署量(装机设备数)看它确实无可匹敌;而开发者热度维度上,DB-Engines排行中长期高居榜首的仍是Oracle、MySQL、Postgres,SQLite通常在十名上下(据db-engines.com历史排名)。装机量第一≠技术选型时的第一选项,这是视频没有点破的语义缝隙。
“够用于你的下一个应用”——七成对,三成要警惕。 成立的前提是:单机写入、数据量在GB到TB级以下、无多机分布式需求。但视频没讲的坑同样真实:
VARCHAR(255)它也接受,但实际按亲和规则存储,数字和文本可以混进同一列——这是它与SQL标准差异最大的地方,迁移到Postgres时会踩坑。“零配置”——是特性也是幻象。 零配置意味着没有内置的用户权限体系、没有备份调度、没有监控指标。用SQLite做生产服务,这些事要么用Litestream这类第三方工具补齐(据litestream.io),要么自己写脚本。省掉的是安装时间,省不掉的是运维思维。
总体而言,Fireship的视频论断方向全部正确,作为100秒的引流内容并无夸大;真正的风险在于观众把“够用”的边界条件也一并省略了。
选型拖延和选型过度都是成本。下一个项目动手前,先回答:写入是否都在单机?运维预算是否为零?是否需要多服务共享同一数据库?三个问题都答“是/否”(即单机、零运维、不需共享),SQLite就是正确答案;任何一项不满足,再请出Postgres。这个小清单能帮你砍掉大量“为想象中的规模付费”的架构债。
你不需要读完源码才有收获。官方文档中的架构图、测试哲学(先写测试框架再写功能、对测试本身做变异验证)适用于任何工程师:当你写的代码会被部署到“没人能修”的环境时,你的测试策略应该长什么样?SQLite给出的答案是行业标杆。这是比任何一本架构书都便宜的自学材料。
用Python标准库自带的sqlite3模块(无需安装任何东西)建一个个人数据管道:爬取或记录你关心的数据(账单、运动数据、RSS),存成单个.db文件;接着执行PRAGMA journal_mode=WAL;开启WAL模式,用EXPLAIN QUERY PLAN看一眼查询计划。一周后你会直观理解“单文件数据库”和“嵌入式引擎”这两个概念——它们从来不是名词,而是工作方式。
flowchart TD
A[起点: 军舰DOS环境<br>无服务器/无DBA/无网络] --> B[设计哲学:<br>嵌入式C库+单文件+零配置]
B --> C[后果1: 部署量全球第一<br>手机/浏览器/OS/桌面软件]
B --> D[后果2: 工程极端化<br>百倍测试代码+MC/DC覆盖+2050格式承诺]
C --> E[核心主张:<br>对你的下一个应用够用了]
E --> F{边界条件审查}
F -->|单机/零运维/GB级| G[✅ 成立<br>Rails 8 / Cloudflare DO / AI本地应用]
F -->|高并发写入/分布式/NFS| H[❌ 需Postgres等<br>单写入者+锁失效风险]
G --> I[2026文艺复兴:<br>本地优先+AI生成应用的默认底座]
H --> I
本文由「51学通信」技术团队出品。51学通信由通信行业18年老兵爱卫生(微信ID: gprshome201101)维护,聚焦5G/6G核心网、3GPP标准解读、通信前沿技术深度分析。 出版作品有《5G核心网原理与实践》《IMS原理与实践》等4本通信专业书籍。知识星球「51学通信」提供深度技术答疑和行业洞察。
[!tip] 51学通信知识星球 星主:爱卫生(微信:gprshome201101)——公众号「51学通信」创办者,19 年通信行业运维与讲师经验,著有《GPRS网络信令实例详解》《EPC原理与实践》《5G核心网原理与实践》三本纸质书(各大电商平台有售)。 星球定位:深耕 5G 核心网、IMS、NFV/AI、云原生等 ICT 领域,主打运维岗位与信令分析。 当前规模:5200 篇主题 / 990 个回答,198 元/年。 加入福利:加入星球后请加爱卫生微信,拉您进知识星球年度陪伴与答疑群——不限量回复您的各种问题,另有群内分享。 AI 加持:51学通信知识星球已作为 skill 接入 WorkBuddy,使用 deepseek-4-flash 在海量星球帖子中精准找贴、找视频、找 FAQ 和案例,做总结、找文档和 PPT 等场景全覆盖。
