美文网首页
数据库索引及explain用法

数据库索引及explain用法

作者: 倔强的潇洒小姐 | 来源:发表于2019-01-07 18:26 被阅读12次

    查询一张表的索引字段:show index from tablename

    image.png

    table : 表的名称

    Non_unique : 表示索引值是否可以重复,为0是不能重复,1是可以重复

    Key_name : 索引名称,如果是主键的话 则为PRIMARY

    Seq_in_index : 索引中序列的序列号,从1开始,如果是组合索引 那么按照字段在建立索引时的顺序排列 如 ('c1', 'c2', 'c3') 那么 分别为 1, 2, 3

    Column_name : 字段名

    Collation: 列以什么方式存储在索引中。A=有值、升序显示 或 NULL(无分序)

    Cardinality : 索引中唯一值的数目的估计值,通过运行 ANALYZE TABLE or myisamchk -a 来更新,基数根据被存储为整数的统计数据来计数,所以对于小表该值没必要太过于精确,而对于大数据量的表来说,改值越大当进行联合时,MySQL使用该索引的机 会就越大。

    Sub_part : 索引的长度

    • 部分被编入索引,该值表示索引的长度
    • 整列被编入索引,该值显示为null

    Packed : 指示关键字如何被压缩。如果没有被压缩,则为NULL

    Null : 该列值有NULL,则为YES,否则为NO

    Index_type:所用索引方法(BTREE, FULLTEXT, HASH, RTREE)

    Comment:关于在其列中没有描述的索引的信息

    Index_comment : 为索引创建时提供了一个注释属性的索引的任何评论



    explain

    用法:在select语句前加上explain
    显示mysql如何使用索引来处理select语句以及连接表,可以帮助选择更好的索引和写出更优化的查询语句。

    image.png

    table:表名
    type:显示连接使用的访问类型
    从最好到最差的连接类型为const、eq_reg、ref、range、index和ALL
    possible_keys:表中可能出现的索引,根据where后的字段得出,如果没写条件会显示NULL

    possible_keys

    key_len:使用的索引的长度

    ref:显示索引的哪一列被使用了,如果可能的话,是一个常数

    rows:MYSQL认为必须检查的用来返回请求数据的行数

    Extra:额外信息

    相关文章

      网友评论

          本文标题:数据库索引及explain用法

          本文链接:https://www.haomeiwen.com/subject/dmtfrqtx.html