SQLite轻量级数据库,它能做什么?适合什么?
SQLite 是一个轻量级、嵌入式的关系型数据库,整个数据库就是一个文件,不用装服务器、不用配置,直接集成到程序里就能用。它是什么嵌入式:不像 MySQL 那样有...
SQLite 是一个轻量级、嵌入式的关系型数据库,整个数据库就是一个文件,不用装服务器、不用配置,直接集成到程序里就能用。
它是什么
嵌入式:不像 MySQL 那样有独立服务器进程,SQLite 是作为库直接跑在你的应用里,数据存在本地单个文件中。
零配置:不用安装、不用管理,下载就能用,特别适合手机 App、嵌入式设备和桌面软件。
事务可靠:支持 ACID 事务,就算系统崩溃或断电,数据也能保持一致。
跨平台:Windows、Linux、macOS、Android、iOS 都能跑,数据库文件还能在不同平台间直接复制共享。
拿来干什么
移动 App:安卓和鸿蒙系统都内置了 SQLite,存用户设置、离线缓存、消息记录这些再合适不过。
桌面软件:浏览器书签、邮件客户端、笔记工具,用它做本地存储很常见。
嵌入式设备:智能家居、物联网设备,资源有限,SQLite 几百 KB 就能跑。
网站:日请求量 10 万次以下的站点,SQLite 完全扛得住,很多小网站直接用。
注意几个坑
不适合高并发写:同一时刻只能有一个写事务,写密集的场景(比如电商下单)它会卡住。
没有用户权限管理:它靠文件系统权限控制访问,不像 MySQL 那样有完整的账号体系。
备份要看时机:WAL 模式下最新数据可能还在日志文件里,直接复制主文件可能拿到旧数据,最好用官方备份接口或工具。
实用建议
开启 WAL 模式:PRAGMA journal_mode=WAL,读写不再互斥,性能提升明显。
用参数化查询:别把用户输入拼进 SQL 字符串,防注入攻击。
设好 busy_timeout:拿不到锁时等待几秒,而不是直接报错。