整体架构图如下所示:
实行步骤如下:
SQL接口------>查询解析器------>查询优化器------>实行器------>存储引擎------->内存或磁盘

1)SQL接口
接管用户的 SQL 命令,并且返回用户须要查询的结果。。
2)查询解析器
SQL命令通报到解析器的时候会被解析器验证和解析。解析器是由Lex和YACC实现的,是一个很长的脚本。
3)查询优化器
SQL 语句在查询之前会利用查询优化器对查询进行优化。便是优化客户端要求的办法 query(sql语句) 根据客户端要求的 query 语句,和数据库中的一些统计信息,在一系列算法的根本上进行剖析,得出一个最优的策略,见告后面的程序如何取得这个 query 语句的结果。
4)实行器
这个实行器会根据优化器选择的实行方案,去调用存储引擎的接口按照一定的顺序和步骤,就把SQL语句的逻辑给实行了。实行器就会去根据我们的优化器天生的一套实行操持,然后一直调用存储引擎的各种接口去完成SQL语句的实行操持。
5) 存储引擎
存储引擎可以说是 MySQL 数据库中最有特色的一点了。目前各种数据库产品中,基本上只有 MySQL 可以实现其底层数据存储引擎的插件式管理。这个模块实际上只是 一个抽象类,但正是由于它成功地将各种数据处理高度抽象化,才造诣了本日 MySQL 可能是插拔存储引擎的特色。常见的存储引擎有InnoDB、MyISAM等等,我们是可以选择利用哪种存储引擎来卖力详细的SQL语句实行的。
6) 内存或磁盘
MSQL也类似一个别系,它的数据也会存入内存或磁盘,没其它地方。