mysql架构
1.第一层:连接管理器。用于处理:Navicat,mysql,JDBC,ODBC,php,pytohon配置的连接、请求;
假如登录mysql输入一条SELECT语句:
mysql>SELECT usr,host,password FROM mysql.user;
2.第二层:核心服务所在层包括:解析,分析,优化,缓存,所有内置函数(例如:日期,时间,数学和加密函数)所有跨存储引擎的的功能都在这一层实现:存储过程,触发器,视图等;
a .继续我们刚才输入的语句,现在到了第二层,服务器先会检查查询缓存,如果命中了缓存,则立即返回存储在缓存中的结果;
b.如果没有命中缓存,第二层则进行SQL解析、预处理,再由优化器生成对应的执行计划;
↓
3.第三层:第三层包含了存储引擎,存储引擎负责MYSQL中的数据存储和提取,服务器通过API与存 储进行通讯,避免了各个存储引擎之间的差异;
存储引擎只会执行第二层发送过来的命令比如“开始一个事物”或者“查询一条数据”,而不会去解析SQL语句,并且不同的数据库引擎之间也不会互相通讯,只是简单响应上层服务的请求;
现在我们的查询语句通过优化器生成执行计划,调用存储引擎的API来执行查询,并且把查询的结果返还给客户端。同时将查询结果保存在查询缓存里,方便下次调用;