- 1 INTRODUCTION
- 2 ARCHITECTURE
- 2.1 Modules
本文为摘录,原文为: attachments/pdf/2/p3535-gaffney.pdf
1 INTRODUCTION
SQLite is embedded in the process of the host application
Instead of communicating with a database server across process boundaries, applications manage a SQLite database by calling SQLite library functions
several characteristics combine to make SQLite useful in a broad range of scenario:
Cross-platform
- 数据库保存在单一文件中,文件可以随意拷贝,兼容:
- 32位/64位
- 大端,小端架构
- SQLite 可以运行在很多类型的机器上
- 数据库保存在单一文件中,文件可以随意拷贝,兼容:
Compact and self-contained
- sqlite 库可以从一个单一 C 文件编译
- 库很小
< 570KiB
- 倚赖很少
- 无需额外安装和配置
Reliable
- 每一行 SQLite 的代码,有超过 600 行的测试代码
- 测试涵盖了所有分支
Fast
2 ARCHITECTURE
2.1 Modules
如下图 所示, SQLite 采用模块化设计,模块可以分成 4 组。
2.1.1 SQL compiler modules
- 负责将 SQL 表达式转换成位可以被虚拟机执行的二进制代码
- 神奇的思路,
- 类似汇编代码。。。
2.1.2 Core modules
- 负责接收和执行 SQL
- 执行引擎可视为虚拟机, 又称 Virtual Database Engine, VDBE
- VDBE 执行 Compiler 模块生成的二进制程序