Skip to content

CORE CONCEPTS · 关系型 · 嵌入式

SQLite 核心知识

SQLite 是嵌入式库而非缩小版数据库服务器。正确使用它需要理解类型亲和性、事务锁、WAL 和宿主进程的文件语义。

学完应该能做到

  • 能设计单写者并发模型
  • 能判断 WAL 与回滚日志差异
  • 能安全升级文件格式与宿主绑定

三个必须建立的心智模型

01

类型亲和性与 STRICT

普通表采用动态类型和列亲和性;STRICT 表可在需要时收紧写入检查。

  • 不要把 VARCHAR 长度当约束
  • 显式处理日期与布尔值
  • 跨数据库迁移先做类型归一化
02

事务与 WAL

SQLite 支持 ACID,但同一数据库文件同一时刻只有一个写者。WAL 改善读写并发,不消除写竞争。

  • 缩短写事务
  • 设置合理 busy_timeout
  • 关注 WAL checkpoint
03

嵌入式边界

连接、权限、备份和同步由宿主应用负责。网络文件系统和多进程锁语义必须单独验证。

  • 使用官方备份 API
  • 避免直接复制活跃文件
  • 移动端升级需包含迁移测试

把知识落到工程决策

建模前

先写出访问模式、正确性边界、数据生命周期和故障预算,再决定表、键、索引或分区。

上线前

使用接近生产的数据分布与并发压测,记录查询计划、资源水位和恢复时间作为基线。

运行中

监控延迟分位数、容量增长、后台维护与复制健康;报警必须能映射到可执行处置步骤。

Released under the MIT License.