MySQL执行查询的过程
流程图如下:
1.客户端发送一条查询给服务器
2.服务器先检查查询缓存(见下面注释),如果命中了缓存,则立刻返回存储在缓存中的结果.否则,进入下一个阶段
3.服务器进行SQL解析.预处理,再由优化器生成对应的执行计划.
4.MySQL根据优化器生成的执行计划,调用存储引擎的API来执行查询.
5.将结果返回给客户端
注释
查询缓存:在解析一个查询语句前,如果缓存是打开的,那么MySQL会优先检查这个查询是否命中查询缓存中的数据.如果没有命中,则进入下一阶段的处理.如果命中查询缓存,则会检查用户的权限,如果权限没有问题,MySQL会跳过其他阶段,直接拿数据返回给客户端.
(摘自高性能mysql第三版)