https://www.youtube.com/watch?v=ZoaPviKP1xo&list=PLSeI7hpg1UEeghysjmOWZjohZDEpN78he&index=10

MySQL 查询优化器

SELECT 执行过程

那么如何提高 MySQL 的查询性能呢?首先你需要了解查询优化器处理 SQL 的全过程。以 SELECT 的 SQL 的执行过程为例,如下图所示。

image.png

  1. 客户端发送一条 SELECT 查询给服务器;
  2. 服务器先检查查询缓存,如果命中缓存,则立刻返回存储在缓存中的结果。否则进入下一节点;
  3. 服务器进行 SQL 解析、预处理、再由查询优化器生成对应的执行计划;
  4. MySQL 根据优化器生成的执行计划,调用存储引擎的 API 来执行查询。
  5. 将结果返回给客户端,同时也会放入查询缓存中。

因为篇幅原因,查询优化器中各个功能模块的具体介绍这里不再赘述。