SQLite体系结构 参考
前端
组成:API->分词器->解析器->代码生成器->虚拟机 (虚拟数据引擎,VDBE)
- 编译器:编译器由分词器、解析器、代码生成器组成。编译器将SQL语句转化为SQLite专用的字节码并由虚拟机执行。
- 虚拟机:VDBE的字节码由100多个操作码组成,所有操作码均用来完成具体的数据库操作,例如:打开一个表的游标、做记录、提取一行等。
后端
- 组成:B-Tree->Pager->OS接口
- B-Tree:B-Tree不是二叉树,每个B-Tree节点都可以有多于2个的子节点。B-Tree的职责是排序。一个SQLite数据库使用B-树的形式存储在磁盘上。数据库中的每个表和索引使用一棵单独的B-树,所有的B-树存放在同一个磁盘文件中。
pager:SQLite中的一种数据结构,B-树模块以固定大小的数据块形式从磁盘上请求信息,Pager负责读、写和缓存这些数据块。Pager还提供回滚和原子提交的抽象,并且管理数据文件的锁定。B-树驱动模块从Pager中请求特定的页,当它想修改页面、想提交或回滚当前修改时,它也会通知Pager。Pager处理所有麻烦的细节,以确保请求能够快速、安全而有效地被处理。
数据库文件