当前位置:Gxlcms > 数据库问题 > mysql 索引优化 Explain的使用

mysql 索引优化 Explain的使用

时间:2021-07-01 10:21:17 帮助过:3人阅读

  • SIMPLE: 表示此查询不包含 UNION 查询或子查询
  • PRIMARY: 表示此查询是最外层的查询
  • SUBQUERY: 子查询中的第一个 SELECT
  • UNION: 表示此查询是 UNION 的第二或随后的查询
  • DEPENDENT UNION: UNION 中的第二个或后面的查询语句, 取决于外面的查询
  • UNION RESULT, UNION 的结果
  • DEPENDENT SUBQUERY: 子查询中的第一个 SELECT, 取决于外面的查询. 即子查询依赖于外层查询的结果.
  • DERIVED:衍生,表示导出表的SELECT(FROM子句的子查询)

type:

  system: 表中只有一条数据, 这个类型是特殊的 const 类型。
  const: 针对主键或唯一索引查询,只返回一条数据。速度非常快
  eq_ref: 多表的 join 查询,效率比较高,两边表的数据量一样,一条对应一条。
  ref: 多表的 join 查询,针对于非唯一或非主键索引,
  range: 表示使用索引范围查询
  index: 表示全索引扫描
  ALL: 表示全表扫描,这个类型的查询是性能最差的查询之一。

  性能关系:  ALL < index < range ~ index_merge < ref < eq_ref < const < system

possible_keys   mysql 在查询时,可能使用到的索引

key    mysql 在查询时 , 真正使用到的索引

key_len 查询优化器使用了索引的字节数

ref  索引的哪个列被使用了

rows   查询结果需要扫描读取的数据行数  (越小越好)

优化:

explain  查询后,查看SQL语句的type类型 , 索引是否使用。 

技术图片

技术图片

 

mysql 索引优化 Explain的使用

标签:ble   一个   调优   info   返回   span   src   bsp   读取   

人气教程排行