SQLite3 是一个轻量级的嵌入式关系型数据库管理系统(RDBMS),它以文件形式存储数据,无需独立的服务器进程,适合资源受限或小型应用场景。以下是优化哥整理分享的关于SQLite 与 MySQL 的对比及适用场景分析:
一、SQLite3 与 MySQL 的核心区别
| 特性 | SQLite3 | MySQL |
|---|---|---|
| 架构 | 嵌入式(无服务器进程) | 客户端-服务器模式(需独立服务) |
| 存储方式 | 单文件(数据库即文件) | 多文件存储(表、索引等分散存储) |
| 并发支持 | 弱(仅允许单写操作,多读) | 强(支持多线程/进程读写) |
| 事务隔离级别 | 仅支持 SERIALIZABLE | 支持多种隔离级别(如 READ COMMITTED) |
| 扩展性 | 有限(适合小型数据) | 高(支持大规模数据、集群部署) |
| 用户管理 | 无用户权限系统 | 完善的用户权限控制(GRANT/REVOKE) |
| 网络访问 | 仅本地文件访问 | 支持远程网络连接 |
| 适用场景 | 移动端、嵌入式、小型应用 | Web 应用、企业级系统、高并发场景 |
二、SQLite3 的优势
零配置:无需安装服务器,解压即用。
轻量级:核心库仅几百 KB,适合资源受限环境(如 IoT 设备)。
跨平台:支持所有主流操作系统。
ACID 兼容:事务完全符合 ACID 特性。
单文件便携:数据库备份只需复制文件。

三、SQLite3 的劣势
并发限制:多进程/线程同时写入时需加锁,性能下降。
功能简化:缺少存储过程、触发器(部分版本支持)、外键约束(默认关闭)。
网络访问缺失:无法直接通过网络访问,需通过应用层共享文件。
数据量限制:官方建议单表不超过 100GB(实际依赖文件系统)。
四、适用 SQLite3 的场景
移动应用开发
Android/iOS 应用本地存储(如用户偏好设置、缓存)。
示例:手机通讯录、笔记应用。
嵌入式设备
智能家居设备(如路由器、摄像头)存储配置或日志。
工业传感器数据临时存储。
小型桌面工具
本地文件管理工具、爬虫数据临时存储。
示例:浏览器历史记录、IDE 的项目配置。
测试与开发
快速原型开发,无需搭建数据库服务器。
单元测试中模拟数据库行为。
数据分析临时存储
Python 脚本中用 sqlite3 模块快速处理数据(如 Pandas 导出到 SQLite)。
四、不适用 SQLite3 的场景
高并发 Web 应用(如电商、社交平台)。
需要分布式部署的场景(如多服务器共享数据)。
复杂查询需求(如多表联查、子查询优化)。
数据安全要求高(需细粒度权限控制)。
结语:
SQLite3 是“小而美”的解决方案,适合追求简单、轻量的场景;而 MySQL 等客户端-服务器数据库则更适合需要高并发、复杂查询或企业级功能的场景。选择时需权衡数据规模、并发需求和开发维护成本。
