SQLite的架构(The Architecture Of SQLite)
2016-03-23 10:43
856 查看
篇文档描述SQLite库的基本架构。对那些想要理解和修改SQLite的人很有帮助。
下面这张图表展示了SQLite的组件和它们之间的关系。
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是负责把SQL语句解析为一个个的“串”,而Paser是根据这些“串”的前后序列关系来生成相应的语法结构。
生成Virtual Machine可以执行的高效代码
执行Code Generator 生成的代码
SQLite数据库文件在磁盘中是以B树的数据结构存储
下面这张图表展示了SQLite的组件和它们之间的关系。
接口(Interface)
SQLite的很多对外接口的实现函数在main.c,legacy.c和vdbeapi.c。还以一些散落在其他文件中,sqlite3_get_table() 函数实现在table.c,sqlite3_mprintf()函数在printf.c,sqlite3_complete()在tokenize.c中。SQLite的更多接口请访问availableseparately。
为了不和其他代码产生命名冲突,所有的SQLite API命名以sqlite3_为前缀。
Tokenizer和Parser
注:tokenizer是负责把SQL语句解析为一个个的“串”,而Paser是根据这些“串”的前后序列关系来生成相应的语法结构。
Code Generator(代码生成器)
生成Virtual Machine可以执行的高效代码
Virtual Machine
执行Code Generator 生成的代码
B-Tree
SQLite数据库文件在磁盘中是以B树的数据结构存储
相关文章推荐
- mysql copy复制拷贝表数据及结构的几种方式(转)
- mysql出现Got error 28 from storage engine错误
- PL/SQL Developer 工具优化
- Mysql在大型网站的应用架构演变
- MySQL数据库的优化-运维架构师必会高薪技能,笔者近六年来一线城市工作实战经验
- mysql审计插件(运维不在背锅)
- .net 中的 SqlBulkCopy 批量插入会锁表吗?
- PLSQL Developer如何连接远程Oracle数据库
- hadoop hive sql语法解释
- 监控mysql 脚本
- vmware 安装openstack,安装mysql,keyston glance,nova
- SQL Server 监控统计阻塞脚本信息
- 转载:SQL Server高效 -- 设计(ITPUT 讨论汇总
- plsql developer 查看执行计划
- mysql服务器监控参数总结
- zabbix监控MySQL备份成功失败
- mysql中OPTIMIZE TABLE的作用
- SQL SERVER-identity | @@identity | scope_identity
- MYSQL企业常用架构与调优经验分享
- MySQL能够承受上亿万条的数据量的架构