关于数据库“EXPLAIN”相关说明

一、在SQL调优的时候,我们经常会使用"EXPLAIN"语句来获取查询执行计划的详细信息,通过执行计划的结果进一步分析调优。

二、使用方式:在需要查看执行计划的SQL语句前面加上“explain”即可

三、结果参数说明:

1、id:表示查询中执行操作的顺序。如果查询涉及多个操作,该值将根据操作的执行顺序递增

2、select_type:表示操作类型,可能的值包括:

  • "SIMPLE"(简单的SELECT查询)
  • "PRIMARY"(外层查询)
  • "SUBQUERY"(子查询)
  • "DERIVED"(派生表查询)
  • "UNION"(UNION查询)等

3、table:表示操作所涉及的表名

4、partitions:表示操作所涉及的分区

5、type:表示访问类型,即在执行操作时使用的访问方法。根据访问类型的优劣,可以判断查询性能的好坏(system > const > eq_ref > ref > range > index > ALL)。常见的值包括:

  • "ALL"(全表扫描)
  • "index"(通过索引扫描)
  • "range"(范围扫描)
  • "ref"(使用非唯一索引进行查找)
  • "eq_ref"(使用唯一索引进行查找)等。

6、possible_keys:表示可能使用的索引列表

7、key:表示实际使用的索引

8、key_len:表示索引的长度

9、ref:表示哪个列或常量与索引进行比较

10、rows:表示预计需要检查的行数

11、filtered:表示通过索引过滤的行的百分比

12、Extra:表示附加信息,可能包含关于查询的其他信息,如"Using filesort"(使用文件排序)或"Using temporary"(使用临时表)等