• explain的字段有哪些?


    • Id:表示select子句或者操作表的顺序,执行顺序从大到小执行,当id一样时,执行顺序从上往下。
    • Select_type:表示查询中每个select子句的类型,例如simple表示不包含子查询、表连接或其他复杂语法的简单查询,primary表示复杂查询的最外层查询,subquery表示在select或where列表中包含了子查询。

    例如:

    EXPLAIN select * from sc  where sname ='李君'

    explain SELECT *

    FROM score AS a

    WHERE degree < (SELECT AVG(degree) FROM score AS b WHERE a.cno = b.cno)

    • Type:表示访问类型,性能由差到好为:All全表扫描;index索引全扫描;range索引范围扫描;ref返回匹配某个单独值所有行,常见于使用非唯一索引或唯一索引的非唯一前缀进行的查找,也经常出现在join操作中;eq_ref唯一性索引扫描,对于每个索引键只有一条记录与之匹配,const当MySQL对查询某部分进行优化,并转为一个常量时,使用这些访问类型,例如将主键或唯一索引置于where列表就能将该查询转为一个const。system表中只有一行数据或空表,只能用于myISAM和memory表,null执行时不用访问表或索引就能得到结果。SQL性能优化的目标:至少要达到range级别,要求是ref级别,如果是consts最好。
    • Possible_keys:表示查询时可能用到的索引,但不一定适用。列出大量可能索引时意味着备选索引数量太多了。
    • Key:显示MySQL在查询时实际使用的索引,如果没有使用则显示为null。
    • Key_len:表示使用到索引字段的长度,可通过该列计算查询中使用的索引的长度,对于确认索引有效性以及多列索引中用到的列数目很重要。
    • Ref:表示上述表的连接匹配条件,即哪些列或常量被用于查找索引列上的值。
    • Rows:表示MySQL根据表统计信息及索引选用情况,估算找到所需记录所需要读取的行数。
    • Extra:表示额外信息,例如using temporary表示需要使用临时表存储结果集,常见于排序和分组查询。Using filesort表示无法利用索引完成的文件排序,这是order by的结果,可以通过合适的索引改进性能。Using index表示只需要使用索引就可以满足查询表的要求,说明表在使用覆盖索引。
    欢迎批评指正,提出问题,谢谢!
  • 相关阅读:
    webpack4+vue 打包 就是没效果?求解!!!
    Vue.js——6.创建组件
    Vue.js——5.生命周期
    Vue.js——4.指令 笔记
    Vue.js——3.增删改查
    Vue.js——2.第一个Vue程序
    Vue.js——1.初识Vue
    Codeforces 1285D Dr. Evil Underscores
    Codeforces 437B The Child and Set
    ZhongHaoxi P105-3 洗衣
  • 原文地址:https://www.cnblogs.com/xxeleanor/p/14994425.html
Copyright © 2020-2023  润新知