SHOW INDEX 你用过吗???

mysql中 show 包含了不少指令,例如show table status, show innodb 等等等,html

今天来说讲mysql中SHOW  INDEX FROM tableNamemysql

本例中用到的表的sql语句sql

CREATE TABLE `user` ( `id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'id 自增,主键', `name` varchar(12) NOT NULL DEFAULT '' COMMENT '用户姓名', `sex` tinyint(1) NOT NULL DEFAULT '0' COMMENT '用户性别,0 保密,1女,2 男', `score` int(3) NOT NULL COMMENT '分数', `class_id` varchar(12) NOT NULL COMMENT '班级', `school_id` int(11) NOT NULL COMMENT '学校id', `created_time` int(11) NOT NULL DEFAULT '0' COMMENT '建立时间', `updated_time` int(11) NOT NULL DEFAULT '0' COMMENT '更新时间', PRIMARY KEY (`id`), ) ENGINE=InnoDB AUTO_INCREMENT=192904 DEFAULT CHARSET=utf8 COMMENT='用户我的信息表';

下面咱们先来建立三个索引:大数据

1 CREATE INDEX name_Index ON `user`(`name`(5));
2 CREATE INDEX school_Index ON `user`(`school_id`);
3 CREATE INDEX class_score_Index ON `user`(`class`, `score`);

msyql > SHOW INDEX FROM `USER`;网站

在mysql中的网站 http://dev.mysql.com/doc/refman/5.7/en/show-index.html 他是对下面的字段这样解释的spa

table : 表的名称code

Non_unique :  若是该列索引中不包括重复的值则为0 不然为1htm

Key_name : 索引名称,若是是主键的话 则为PRIMARYblog

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

Column_name : 列的名称

Collation : 列以什么方式存储在索引中。在MySQL中,有值‘A’(升序)或NULL(无分序)

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

Sub_part : 索引的长度,若是是部分被编入索引 则该值表示索引的长度 ,若是是整列被编入索引则为null,例如name_Index和school_Index 两个索引,比较一下上面两个索引建立时候的区别

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

Null : 若是该列的值有NULL,则是YES 不然为NO..

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

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

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

相关文章
相关标签/搜索