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 : 爲索引建立時提供了一個註釋屬性的索引的任何評論