使用 explain 分析 SQL
使用 explain 分析 SQL
explain 显示了 MySQL 是如何使用索引来处理 select 语句和连接表。使用 explain 可以帮我们选择更好的索引和写出更优化的查询语句。
执行结果
一个 explain 语句执行的结果如下:
id
id 是 select 语句的标识符,没有什么意义,如果有子查询的话 explain 结果会有两条记录,id 分别是 1 和 2。这个序号代表了 sql 语句执行的顺序。
select_type
select_type 表示 select 的类型
有这几种值:
table
输出结果集的表
type
表示 mysql 查询所使用的方式
possible_keys
查询可能使用到的索引
key
即使使用的索引
key_len
使用的索引字段的长度
ref
使用哪个列或者常数与 key 一起从表中选择行。
rows
显示执行查询的行数,值越大越不好,说明没有用好索引。
filtered 存储引擎返回的数据在 server 层过滤后,剩下满足查询的记录数量比例。
extra
包含 MySQL 解决查询的相信信息。
参考
MySQL——通过EXPLAIN分析SQL的执行计划
MySQL explain 详解
Read other posts