SQLite 是一个 轻量级、零配置、嵌入式的关系型数据库。它非常小巧但功能完整,被广泛用于移动端、桌面应用、嵌入式设备、浏览器、IoT、服务器软件等各种场景。
下面用简单清晰的方式介绍 SQLite。
✅ SQLite 是什么?
SQLite 是一个 基于文件 的关系型数据库系统:
-
不需要安装服务器
-
所有数据都保存在一个普通文件中(.db / .sqlite)
-
支持标准 SQL 语法
-
线程安全、高性能、跨平台
-
程序可以直接嵌入 SQLite 引擎,无需网络通信
它不像 MySQL、PostgreSQL 那样是“守护进程型数据库”,而更像一个“数据库文件 + 操作库”,非常轻量。
✅ SQLite 的特点(为什么这么流行)
1. 零配置,开箱即用
无需安装、无需启动服务、无需管理权限,复制数据库文件即可使用。
2. 单个文件保存所有数据
你可以简单地把数据库文件:
-
打包
-
备份
-
复制到另一台设备
-
放到 USB、移动硬盘等
非常便携。
3. 高性能
虽然轻量,但性能不弱:
在单机读写方面,有时甚至比 MySQL/PG 更快(没有网络 IO)。
4. 可靠性极高
SQLite 用在飞行器、手机系统、浏览器、智能家电等严苛环境,具备:
-
事务支持(ACID)
-
崩溃恢复机制
-
filesystem-independent
可靠性经过全球大量应用验证。
5. 广泛应用
几乎每个设备都用 SQLite:
-
Android / iOS 内部数据库
-
Chrome、Firefox 浏览器
-
微信 / QQ 的本地消息记录
-
Photoshop / Office 配置缓存
-
嵌入式系统、智能柜、无人机
全世界每天有数十亿次 SQLite 的部署和读写操作。
✅ SQLite 的核心技术点
1. 标准 SQL 支持
支持大部分 SQL92/SQL99,包括:
-
SELECT、INSERT、UPDATE、DELETE
-
JOIN(支持左外连接)
-
事务(BEGIN/COMMIT)
-
视图、触发器
-
索引、唯一约束、外键(需要开启)
2. 数据类型系统(灵活)
SQLite 使用 动态类型系统:
SQLite 并非严格强类型,而是:
-
列可以声明类型,但并不强制存储类型
-
一个列声明 INT,也可以存 TEXT(不推荐,但 SQLite 允许)
这种设计使 SQLite 更灵活,也能减少 schema 变更麻烦。
3. 并发模型
SQLite 使用 写锁定 机制:
-
读并发高:多个读同时进行
-
写只能单个进行:但写非常快,通常问题不大
(也可以使用 WAL 模式改善写性能)
✅ 适用场景
✓ 非常适合
-
移动 APP 本地数据库
-
桌面应用本地保存数据
-
中小规模网站的数据缓存
-
单机工具/脚本
-
嵌入式设备(IoT、智能硬件)
-
临时数据库、测试用数据库
-
只需一个文件的高可靠数据存储
✗ 不适合
大规模并发写、需要多台服务器共享的大型项目,比如:
-
高并发网站后台
-
金融交易系统
-
分布式数据库需求
此时应使用 MySQL、PostgreSQL 等。