
在程序员圈子里,有一条默认的“铁律”:只要是生产级系统,就必须用“正经”的数据库——分布式、可水平扩展、架构图上看起来足够高端,PostgreSQL、MySQL才是“标准答案”。
但有一位工程师,却偏要反其道而行之:搭建生产级后端基础设施时,他没有选择任何一款“可扩展”数据库,反而用了被无数人贴上“demo专用”“难扛负载”标签的SQLite。
消息一出,质疑声铺天盖地:“这不是闹着玩吗? SQLite撑得住生产环境?”“放着成熟的PostgreSQL不用,非要踩坑?”“迟早要因为数据库崩掉,半夜起来背锅”。
可谁也没想到,这套用SQLite搭建的系统,不仅稳定运行至今,还解决了团队最头疼的运维难题。他的选择,不仅打破了行业共识,更撕开了一个被很多工程师忽略的真相:大多数系统的失败,从来不是因为数据库不够“能打”,而是因为过度复杂。
先给大家说清楚关键技术核心:SQLite是一款开源免费的嵌入式关系型数据库,无需单独部署服务器,直接以文件形式存在,目前在GitHub上拥有超过17万星标,被广泛应用于浏览器、嵌入式系统、移动端APP等场景,完全免费且可自由使用,没有任何版权门槛。
这位工程师的选择,从来不是一时冲动,而是基于自身系统的真实需求,经过反复权衡后的理性决定——他要搭建的不是社交网络,不是需要每秒处理百万并发写入的平台,而是后端基础设施,核心需求是任务执行、状态跟踪,简单来说,就是“稳、简、准”。
不同于高并发场景,他的后端基础设施,对数据库的核心要求只有4点:状态一致、写入可靠、查询简单、负载下行为可预测。不需要分布式共识,不需要处理复制延迟的麻烦,更不需要应对集群分歧带来的凌晨告警——这些“高端功能”,对他的系统来说,全是多余的负担。
很多人对SQLite的印象,还停留在“移动端APP本地存储”“测试原型专用”,但很少有人知道,它的底层实力远比想象中强悍:
它完全符合ACID标准,数据一致性和可靠性不亚于任何一款“正经”数据库;本地读写速度极快,没有网络传输延迟,因为它不需要单独的服务器进程,直接操作本地文件;稳定性更是经过了时间考验,浏览器、手机、嵌入式设备里,到处都有它的身影。
它唯一的“短板”,就是不支持水平扩展——但这一点,对这位工程师的系统来说,根本不是问题。因为水平扩展从来不是“免费福利”,它带来的,是更多的协调成本、更多的故障场景,以及无休止的运维麻烦,而SQLite,恰好剔除了所有这些多余的复杂度。
所有人都担心的“并发问题”,他也给出了完美的解决方案。没错,SQLite会对数据库加锁,但这并非绝对的缺点,只要设计合理,就能完美规避:
首先,控制写入频率,避免无意义的高频写入;其次,缩短事务时间,不让单个事务占用锁太久;再者,做好重试机制,遇到锁冲突时优雅重试;最后,在必要时进行进程级协调,从源头减少并发冲突。
他没有强行对抗SQLite的局限性,而是顺势而为,围绕它的特性设计系统,最终实现了“无混乱、无竞态条件、可掌控”的运行效果。
在他的系统中,每天大约有几万次操作,SQLite轻松应对,没有出现任何性能问题。这也让他看清了一个真相:大多数系统的性能瓶颈,从来不是磁盘I/O或查询执行速度,而是糟糕的逻辑设计、低效的工作流、不必要的重试,以及不合理的系统架构。
就算换成PostgreSQL这类“可扩展”数据库,也解决不了这些核心问题,反而会因为增加了复杂度,让问题变得更难排查、更难解决。
这位工程师的成功,并不是因为SQLite“无所不能”,而是因为他精准匹配了技术与需求——我们既要看到SQLite的优势,也要清醒地认识到它的局限性,避免盲目跟风。
先肯定SQLite的核心价值:它的 simplicity 是最大的竞争力。没有连接池需要调优,没有网络超时需要调试,没有复制延迟需要纠结,没有分布式事务需要担心,只需“打开文件、读写、提交”三步,就能完成所有操作。这种 simplicity 带来的可预测性,对小团队来说,就是最大的效率提升——不用专人运维数据库,不用半夜起来处理集群故障,节省的时间,能全部投入到产品优化中。
但也要明确:SQLite绝对不是“万能解决方案”,以下场景,坚决不能用:
如果你的系统需要多台机器同时进行高并发写入,SQLite撑不住;如果你的系统是真正的分布式架构,需要跨节点同步数据,SQLite不适合;如果你的系统有大规模复杂查询需求,或者数据量、吞吐量已经超出了单节点的承载能力,SQLite也不是最佳选择。
最关键的思考的是:我们选择数据库,是为了解决自己的问题,而不是为了追求“高端”“时髦”,更不是为了在架构图上显得有面子。过度追求可扩展性,反而会让简单的问题复杂化,最终导致系统失败——这才是很多工程师最容易踩的坑。
这位工程师的实践,对大多数小团队、初创团队来说,有着极强的借鉴意义——毕竟,不是所有团队都有实力维护分布式数据库集群,也不是所有系统都需要“水平扩展”的能力。
很多小团队,往往陷入“过度工程”的误区:害怕未来业务增长,盲目选择分布式数据库,结果投入大量人力、物力维护,却发现业务根本没达到预期,反而被复杂的运维工作拖垮;盲目跟风行业趋势,觉得“别人用什么,我就用什么”,忽略了自身的实际需求,最终导致系统臃肿、故障频发。
而SQLite的出现,给这些团队提供了一个更优解:免费、开源、零运维、高稳定,刚好匹配小团队的资源现状,也能满足大多数非高并发场景的需求。它的成功实践,也给所有工程师上了一课:技术本身没有高低之分,能完美解决问题的,就是最好的技术。
真正能“扩展”的,从来不是数据库本身,而是清晰的需求约束、可控的并发设计、简单的系统架构,以及更少的移动部件——这些,才是支撑系统长期稳定运行的核心,也是这位工程师能够成功的关键。
看完这位工程师的经历,相信很多人都会有共鸣:工作中,我们是不是也经常为了“追求完美”“害怕未来”,做了很多多余的设计?是不是也盲目跟风过“高端技术”,最后发现根本用不上?
你在工作中,有没有用过SQLite做生产系统?或者遇到过因为过度设计,导致系统复杂、运维困难的情况?你觉得,小团队搭建系统,优先选择简单可靠的技术,还是提前布局“可扩展”技术?
欢迎在评论区留言讨论,分享你的经历和看法,一起避开过度工程的坑,选择最适合自己的技术方案~
更新时间:2026-05-03
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight All Rights Reserved.
Powered By 61893.com 闽ICP备11008920号
闽公网安备35020302035593号