二十二、查询分析器 EXPLAIN

152 阅读1分钟

一、explain 简介

explain 命令可以查看 SQL 语句的执行计划。当 explain 与 SQL 语句一起使用时, MySQL 将显示来自优化器的有关语句执行计划的信息。也就是说,MySQL 解释了它将如何处理语句,包括有关如何连接表以及以何种顺序连接表的信息。

  1. explain 能做什么
  • 分析出表的读取顺序;
  • 数据读取操作的操作类型;
  • 哪些索引可以使用;
  • 哪些索引被实际使用;
  • 表之间的引用;
  • 每张表有多少行被优化器查询。

explain 的使用很简单,只需要在 SQL 语句前加上 explain 命令即可。语法如下:

explain sql 语句

二、explain 结果解析

参数描述
id执行 sql 语句操作表的顺序
select_type查询的类型,如 SIMPLE、PRIMARY、SUBQUERY、DERIVED、UNION 等
table当前行使用的表名
partitions匹配的分区
type连接类型,包含 system、const、eq_ref、ref、range、index、all 。从左至右效率越来越差。
possible_keys可能使用的索引
key实际使用的索引
key_len查询中使用的索引长度
ref列与索引的比较
rows扫描行数
filtered悬泉的行数占扫描的行数的百分比,理想结果时100
extra其他信息