天天看点

数据库执行流程 1.词法分析 2.语法分析 3.查询数据字典  4.执行计划执行 5.虚拟指令生成 6.虚拟指令执行

1.词法分析

输入:sql语句 

输出:合法单词 

2.语法分析

输入:合法单词

输出:语法树

数据库执行流程 1.词法分析 2.语法分析 3.查询数据字典  4.执行计划执行 5.虚拟指令生成 6.虚拟指令执行

3.查询数据字典 

输入:语法树 

输出:机器懂的语法树 

4.执行计划执行

输入:语法树 

输出:执行计划树

查询优化(optimization) 

执行计划

5.虚拟指令生成

输入:执行计划树

输出:可执行的虚拟指令

6.虚拟指令执行

输入:虚拟指令 

输出:执行结果

为什么采用虚拟指令模式? 

(1)执行仅仅依赖亍虚拟指令,扩展sql时,无需修改底层;

(2)便于调试,检查虚拟指令集就可以知道执行的正确性;

(3)减少耦合,提高独立性;

(4)底层集中优化;

转载于:https://my.oschina.net/wzwitblog/blog/152824