mysql一条sql语句的执行过程
(1)使用连接器,通过客户端/服务端通信协议与mysql建立连接,并查询是否有权限
(2)mysq8.0之前需要检查是否开启了缓存,开启了QueryCache且命中完全相同的sql语句,则将查询结果直接返回给客户端。
(3)由解析器(分析器)进行语法分析和语义分析,并生成解析树。比如查询时select、表名是user、条件是age= ‘100’ and name = ‘zhangsan’。
(4)由优化器生成执行计划,根据索引看看是否可以优化。
(5)执行器来执行sql语句,这里具体的执行会操作mysql的执行引擎来执行sql语句,根据存储引擎类型,得到查询结果。若开启了Query Cache,则将查询结果缓存,否则直接返回。