MySQ索引操作敕令總結(創立、重建、查詢和刪除索引敕令詳解)。本站提示廣大學習愛好者:(MySQ索引操作敕令總結(創立、重建、查詢和刪除索引敕令詳解))文章只能為提供參考,不一定能成為您想要的結果。以下是MySQ索引操作敕令總結(創立、重建、查詢和刪除索引敕令詳解)正文
以下所列示例中中 `table_name` 表現數據表名,`index_name` 表現索引名,column list 表現字段列表(如:`id`,`order_id`)。
1、創立索引
索引的創立可以在CREATE TABLE語句中停止,也能夠零丁用CREATE INDEX或ALTER TABLE來給表增長索引。以下敕令語句分離展現了若何創立主鍵索引(PRIMARY KEY),結合索引(UNIQUE)和通俗索引(INDEX)的辦法。
mysql>ALTER TABLE `table_name` ADD INDEX `index_name` (column list);
mysql>ALTER TABLE `table_name` ADD UNIQUE `index_name` (column list);
mysql>ALTER TABLE `table_name` ADD PRIMARY KEY `index_name` (column list);
mysql>CREATE INDEX `index_name` ON `table_name` (column_list);
mysql>CREATE UNIQUE INDEX `index_name` ON `table_name` (column_list);
例如:
mysql>ALTER TABLE `article` ADD INDEX `id`;//給article表增長id索引
或許:
mysql>ALTER TABLE `article` ADD INDEX (`id`,`order_id`);給article表增長id索引,order_id索引
2、重建索引
重建索引在慣例的數據庫保護操作中常常應用。在數據庫運轉了較長時光後,索引都有破壞的能夠,這時候就須要重建。對數據重建索引可以起到進步檢索效力。
mysql> REPAIR TABLE `table_name` QUICK;
3、查詢數據表索引
MySQL查詢表索引敕令的有兩種敕令情勢:
mysql> SHOW INDEX FROM `table_name`;
或許:
mysql> SHOW keys FROM `table_name`;
運轉以上敕令獲得的成果將以下圖,上面將將所得的成果中每列的意思做一下解釋。
Table 表的稱號。
Non_unique 假如索引不克不及包含反復詞,則為0。假如可以,則為1。
Key_name 索引的稱號。
Seq_in_index 索引中的列序列號,從1開端。
Column_name 列稱號。
Collation 列以甚麼方法存儲在索引中。在MySQL中,有值‘A'(升序)或NULL(無分類)。
Cardinality 索引中獨一值的數量的估量值。經由過程運轉ANALYZE TABLE或myisamchk -a可以更新。基數依據被存儲為整數的統計數據來計數,所以即便關於小型表,該值也沒有需要是准確的。基數越年夜,當停止結合時,MySQL應用該索引的機 會就越年夜。
Sub_part 假如列只是被部門地編入索引,則為被編入索引的字符的數量。假如整列被編入索引,則為NULL。
Packed 指導症結字若何被緊縮。假如沒有被緊縮,則為NULL。
Null 假如列含有NULL,則含有YES。假如沒有,則該列含有NO。
Index_type 用過的索引辦法(BTREE, FULLTEXT, HASH, RTREE)。
Comment 更多評注。
4、刪除索引
刪除索引可使用ALTER TABLE或DROP INDEX語句來完成。DROP INDEX可以在ALTER TABLE外部作為一條語句處置,其格局以下:
mysql>DROP index `index_name` ON `table_name` (column list);
mysql>ALTER TABLE `table_name` DROP INDEX `index_name` (column list);
mysql>ALTER TABLE `table_name` DROP UNIQUE `index_name` (column list);
mysql>ALTER TABLE `table_name` DROP PRIMARY KEY `index_name` (column list);
在後面的三條語句中,都刪除table_name中的索引index_name。而在最初一條語句中,只在刪除PRIMARY KEY索引中應用,由於一個表只能夠有一個PRIMARY KEY索引,是以也可不指定索引名。假如沒有創立PRIMARY KEY索引,但表具有一個或多個UNIQUE索引,則MySQL將刪除第一個UNIQUE索引。假如從表中刪除某列,則索引會受影響。關於多列組合的索引,假如刪除個中的某列,則該列也會從索引中刪除。假如刪除構成索引的一切列,則全部索引將被刪除。