sql&db

MYSQL中的explain使用的type取值

字号+ 作者:zhuawa 来源:未知 2018-05-04 14:22 我要评论( )

mysql中用explain去查看是否用了索引

type:
    连接类型
    system          表只有一行
    const           表最多只有一行匹配,通用用于主键或者唯一索引比较时
    eq_ref          每次与之前的表合并行都只在该表读取一行,这是除了system,const之外最好的一种,
                    特点是使用=,而且索引的所有部分都参与join且索引是主键或非空唯一键的索引
    ref             如果每次只匹配少数行,那就是比较好的一种,使用=或<=>,可以是左覆盖索引或非主键或非唯一键
    fulltext        全文搜索
    ref_or_null     与ref类似,但包括NULL
    index_merge     表示出现了索引合并优化(包括交集,并集以及交集之间的并集),但不包括跨表和全文索引。
                    这个比较复杂,目前的理解是合并单表的范围索引扫描(如果成本估算比普通的range要更优的话)
    unique_subquery 在in子查询中,就是value in (select...)把形如“select unique_key_column”的子查询替换。
                    PS:所以不一定in子句中使用子查询就是低效的!
    index_subquery  同 unique_subquery,把形如”select non_unique_key_column“的子查询替换
    range           常数值的范围
    index           a.当查询是索引覆盖的,即所有数据均可从索引树获取的时候(Extra中有Using Index)
                    b.以索引顺序从索引中查找数据行的全表扫描(无 Using Index)
                    c.如果Extra中Using IndexUsing Where同时出现的话,则是利用索引查找键值的意思
                    d.如单独出现,则是用读索引来代替读行,但不用于查找
    all             全表扫描

转载请注明出处。

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

相关文章
  • Mysql自定义函数,从 j 加到 n

    Mysql自定义函数,从 j 加到 n

    2018-05-11 11:07

  • MYSQL对数据库字段的更改

    MYSQL对数据库字段的更改

    2017-10-27 09:56

  • 数据库迁移及及区别(Oracle,MySQL,SQLServer)

    数据库迁移及及区别(Oracle,MySQL,SQLServer)

    2016-01-08 14:58

网友点评
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)