mysql查询流程:
mysql 分为两部分,其部分是server,一部分是存储引擎,当查询一条sql,
1:连接器,客户端通过连接器,根据输入的账号密码进行连接。
2:缓存,mysql5.8之前的版本是有缓存的,5:.8之后缓存功能取消,根据查询语句去缓存中去查询,如果命中,直接返回,否则,再去一步步通过存储引擎取出数据。
3:分析器,如果你的查询语句没有命中缓存,就会执行分析器,分析器对语句进行词法和语法分析,检查是否有语法错误。
4:优化器,是在表内有多个索引的时候,决定用那个索引,或者决定各个连接表的顺序
5:执行器,执行语句的的时候,会先判断当前账号是否有对此表的查询权限,如果没有返回错误 信息,如果有权限,则继续执行当前表。会通过表的存储引擎,去使用这个引擎的接口,去查询数据