1、MySQL执行计划的定义
在 MySQL 中可以通过 explain 关键字模拟优化器执行 SQL语句,从而知道 MySQL 是如何处理 SQL 语句的。
2、MySQL整个查询的过程
• 客户端向 MySQL 服务器发送一条查询请求
• 服务器首先检查查询缓存,如果命中缓存,则立刻返回存储在缓存中的结果。否则进入下一阶段
• 服务器进行 SQL 解析、预处理、再由优化器生成对应的执行计划
• MySQL 根据执行计划,调用存储引擎的 API 来执行查询
• 将结果返回给客户端,同时缓存查询结果
注意:只有在8.0之前才有查询缓存,8.0之后查询缓存被去掉了
3、如何启动执行计划
explain select 投影列 FROM 表名 WHERE 条件
4、Explain分析示例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
CREATE TABLE `actor` ( `id` int (11) NOT NULL , ` name ` varchar (45) DEFAULT NULL , `update_time` datetime DEFAULT NULL , PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `film` ( `id` int (11) NOT NULL , ` name ` varchar (10) DEFAULT NULL , PRIMARY KEY (`id`), KEY `idx_name` (` name `) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; CREATE TABLE `film_actor` ( `id` int (11) NOT NULL , `film_id` int (11) NOT NULL , `actor_id` int (11) NOT NULL , `remark` varchar (255) DEFAULT NUL
|