简介

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

作用

  1. 分析出表的读取顺序
  2. 数据读取操作的操作类型
  3. 哪些索引可以使用
  4. 哪些索引被实际使用
  5. 表之间的引用
  6. 每张表有多少行被优化器查询

使用

  • 需要在SQL语句之前加上explain命令即可,除select语句外,explain也能分析insert、update和delete语句。

结果解析

参数 描述
id 执行select子句或操作表的顺序
select_type 查询的类型,如SIMPLE、PRIMARY、SUBQUERY、DERIVED、UNION等
table 当前行使用的表名
partitions 匹配的分区
type 连接类型,如system、const、eq_ref、ref、range、index、all等
possible_keys 可能使用的索引
key 实际使用的索引,NULL表示未使用索引
key_len 查询中使用的索引长度
ref 列与索引的比较
rows 扫描的行数
filtered 选取的行数占扫描的行数的百分比,理想的结果是100
extra 其他额外信息

(参考资料:[explain详解])

MySQL学习14_查询分析器explain


知识总结,交流学习,不当之处敬请指正,谢谢!

相关文章: