mysql 执行计划

一、执行计划命令

  1. EXPLAIN SELECT ……
  2. EXPLAIN EXTENDED SELECT ……
    在1的基础上,运行SHOW WARNINGS 可得到被MySQL优化器优化后的查询语句

二、查看执行计划

id select_type table partitions type possible_keys key key_len ref rows filtered Extra

每列说明

  • id:数字,表示查询中执行select子句或操作表的顺序,id相同,执行顺序由上至下
  • select_type:查询中每个select子句的类型,常见值
    • SIMPLE:查询中不包含子查询或者UNION
    • PRIMARY:查询中若包含任何复杂的子部分,最外层查询为PRIMARY
    • SUBQUERY:在SELECT或WHERE列表中包含了子查询,该子查询为SUBQUERY
    • DERIVED:在FROM列表中包含的子查询为DERIVED
    • UNION:若第二个SELECT出现在UNION之后,则为UNION
    • UNION RESULT:从UNION表获取结果的SELECT
  • table:表名或表别名
  • type:如何查找到行,常见值
    • ALL:全表扫描
    • index:全索引树扫描
    • range:索引范围扫描
    • ref:使用普通索引
    • eq_ref:使用主键或唯一索引
    • const、system:常量匹配
  • possible_keys:可能用到的索引
  • key:实际使用的索引
  • key_len:使用索引长度
  • ref:关联字段
  • rows:查询需要访问的行数
  • Extra:十分重要的额外信息,常见值
    • Using index:使用覆盖索引
    • Using temporary:使用临时表
    • Using filesort:无法利用索引完成的排序操作称为“文件排序”

你可能感兴趣的:(数据库,mysql,数据库)