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

相關文章
相關標籤/搜索