MySQL explain 最全解释

一、 官方文档

https://dev.mysql.com/doc/refman/5.7/en/explain-output.html

二、explain 简介

explain命令用来查看SQL语句的执行计划,查看该SQL语句有没有使用上了索引,有没有做全表扫描

1. 通过 explain 我们可以知道以下信息

①表的读取顺序。(对应id)

②数据读取操作的操作类型。(对应select_type)

③哪些索引可以使用。(对应possible_keys)

④哪些索引被实际使用。(对应key)

⑤表直接的引用。(对应ref)

⑥每张表有多少行被优化器查询。(对应rows)

 2. explain 有两个变种

1)explain extended:会在 explain  的基础上额外提供一些查询优化的信息。紧随其后通过 show warnings 命令可以 得到优化后的查询语句,从而看出优化器优化了什么。

额外还有 filtered 列,是一个半分比的值,rows * filtered/100 可以估算出将要和 explain 中前一个表进行连接的行数(前一个表指 explain 中的id值比当前表id值小的表)。

mysql> explain extended select * from film where id = 1;
+--

猜你喜欢

转载自blog.csdn.net/yunxing323/article/details/110819849