CORE CONCEPTS · 关系型 · 嵌入式
SQLite 核心知识
SQLite 是嵌入式库而非缩小版数据库服务器。正确使用它需要理解类型亲和性、事务锁、WAL 和宿主进程的文件语义。
学完应该能做到
- 能设计单写者并发模型
- 能判断 WAL 与回滚日志差异
- 能安全升级文件格式与宿主绑定
三个必须建立的心智模型
类型亲和性与 STRICT
普通表采用动态类型和列亲和性;STRICT 表可在需要时收紧写入检查。
- 不要把 VARCHAR 长度当约束
- 显式处理日期与布尔值
- 跨数据库迁移先做类型归一化
事务与 WAL
SQLite 支持 ACID,但同一数据库文件同一时刻只有一个写者。WAL 改善读写并发,不消除写竞争。
- 缩短写事务
- 设置合理 busy_timeout
- 关注 WAL checkpoint
嵌入式边界
连接、权限、备份和同步由宿主应用负责。网络文件系统和多进程锁语义必须单独验证。
- 使用官方备份 API
- 避免直接复制活跃文件
- 移动端升级需包含迁移测试
把知识落到工程决策
建模前
先写出访问模式、正确性边界、数据生命周期和故障预算,再决定表、键、索引或分区。
上线前
使用接近生产的数据分布与并发压测,记录查询计划、资源水位和恢复时间作为基线。
运行中
监控延迟分位数、容量增长、后台维护与复制健康;报警必须能映射到可执行处置步骤。