本文为摘录,原文为: 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 模块生成的二进制程序