
鱼C工作室
专注编程教育的平台,提供免费视频教程、原创书籍和AI助理,让零基础学习编程更简单有趣。
SQLite 是一个开源的嵌入式关系型数据库引擎,以单个库文件的形式直接集成到应用程序中。它不采用客户端-服务器架构,而是由应用程序直接读写数据库文件,因此无需独立安装、配置或维护数据库服务。
整个数据库引擎被打包进一个约 600KB 的 C 语言库文件中,不需要任何外部依赖。创建数据库仅需打开一个文件,删除数据库也只需删除该文件。这一设计使其特别适合资源受限的环境,如移动设备、嵌入式系统和桌面客户端。
SQLite 运行在宿主进程内,应用程序通过函数调用直接操作数据库,而非通过网络协议与独立服务通信。这种模式消除了进程间通信开销,在本地数据读写场景下通常比客户端-服务器型数据库更快。
SQLite 支持完整的 ACID 事务,采用写前日志(WAL)或回滚日志机制保证崩溃后的数据一致性。即使发生断电或系统崩溃,数据库也能自动恢复到最近一次一致状态。
实现了大部分 SQL-92 标准,支持表、索引、视图、触发器、外键、窗口函数、公共表表达式(CTE)等特性。需要注意的是,它对 ALTER TABLE 的部分操作支持有限,且默认不强制执行外键约束(需手动开启)。
| 场景 | 说明 |
|---|---|
| 移动应用 | iOS 和 Android 系统将其作为内置数据库组件 |
| 桌面软件 | 浏览器、媒体播放器、开发工具等本地数据存储 |
| 嵌入式设备 | IoT 设备、机顶盒、车载系统等 |
| 原型开发 | 快速搭建无需服务端数据库的应用原型 |
| 数据分析 | 作为临时数据存储或中间处理格式 |
| 场景 | 原因 |
|---|---|
| 高并发写入 | 同一时刻仅允许一个写入者,写吞吐受限 |
| 多用户网络访问 | 缺乏服务端权限管理和网络协议支持 |
| 超大规模数据 | 单文件架构在 TB 级数据下管理成本显著上升 |
| 复杂复制与集群 | 不提供内置的多主复制或水平扩展能力 |
访问 sqlite.org 可获取源码、预编译二进制文件及完整文档。官方提供命令行工具 sqlite3 用于交互式操作和脚本处理。大多数编程语言均有成熟绑定,如 Python 标准库中的 sqlite3 模块、Node.js 的 better-sqlite3 等。
对于需要本地持久化、低运维成本且并发写入压力不大的应用,SQLite 是一个经过大规模生产验证的可靠选择。







