MySQL逻辑架构
from 慕课网教程
存储引擎层负责数据的存储和提取
Server围绕存储引擎的特性,提供一系列的核心服务
一条查询语句的执行流程
select id from a where id=1;
-
客户端连接到服务端连接池
a. 服务端判断用户名密码,认证通过,建立连接
b. 按用户名之前配置好的权限进行授权 -
对SQL语句分析,看是否能命中缓存,命中则返回,未命中则继续解析SQL
一个表有更新操作,那这个表所有的查询缓存都会被清空。对一个承载正常业务的数据库来说,更新操作是非常频繁的,这就意味着查询缓存经常失效,从而导致查询缓存的命中率非常低。所以,使用查询缓存反而会给数据库带来额外的负担,在实际生产环境中,我们建议关闭查询缓存。
-
解析SQL语句
a. 词法解析,找出哪些是关键字,哪些是参数
b. 语法解析,判断语句是否符合语法规则,正确则通过 -
优化器
结合已建索引等各种配置信息,得出最优的查找方式 -
执行器
对存储引擎发起执行请求,拿到执行结果