SQLite的架构 (The Architecture Of SQLite)
时间:2016-05-29 13:32 来源:linux.it.net.cn 作者:IT
介绍
这篇文档描述SQLite库的基本架构。对那些想要理解和修改SQLite的人很有帮助。
下面这张图表展示了SQLite的组件和它们之间的关系。
接口(Interface)
SQLite的很多对外接口的实现函数在main.c,legacy.c和vdbeapi.c。还以一些散落在其他文件中,sqlite3_get_table() 函数实现在table.c,sqlite3_mprintf()函数在printf.c,sqlite3_complete()在tokenize.c中。SQLite的更多接口请访问available separately。
为了不和其他代码产生命名冲突,所有的SQLite API命名以sqlite3_为前缀。
Tokenizer和Parser
注:tokenizer是负责把SQL语句解析为一个个的“串”,而Paser是根据这些“串”的前后序列关系来生成相应的语法结构。
Code Generator(代码生成器)
生成Virtual Machine可以执行的高效代码
Virtual Machine
执行Code Generator 生成的代码
B-Tree
SQLite数据库文件在磁盘中是以B树的数据结构存储
http://www.sqlite.org/arch.html
(责任编辑:IT)
介绍这篇文档描述SQLite库的基本架构。对那些想要理解和修改SQLite的人很有帮助。 下面这张图表展示了SQLite的组件和它们之间的关系。
接口(Interface)
SQLite的很多对外接口的实现函数在main.c,legacy.c和vdbeapi.c。还以一些散落在其他文件中,sqlite3_get_table() 函数实现在table.c,sqlite3_mprintf()函数在printf.c,sqlite3_complete()在tokenize.c中。SQLite的更多接口请访问available separately。
为了不和其他代码产生命名冲突,所有的SQLite API命名以sqlite3_为前缀。
Tokenizer和Parser
注:tokenizer是负责把SQL语句解析为一个个的“串”,而Paser是根据这些“串”的前后序列关系来生成相应的语法结构。
Code Generator(代码生成器)
生成Virtual Machine可以执行的高效代码
Virtual Machine执行Code Generator 生成的代码B-TreeSQLite数据库文件在磁盘中是以B树的数据结构存储http://www.sqlite.org/arch.html(责任编辑:IT) |