在mysql中,index關鍵字可用於建立索引,語法「CREATE INDEX 索引名 ON 表名(列名)」;可用於檢視索引,語法「SHOW INDEX FROM 表名」;也可用於修改索引,語法「DROP INDEX 索引名 ON 表名」。
本教學操作環境:windows7系統、mysql8版本、Dell G3電腦。
在mysql中,index指的是索引,是一種特殊的資料庫結構,由資料表中的一列或多列組合而成,可以用來快速查詢資料表中有某一特定值的記錄。
index關鍵字可以用於建立索引,也可用於檢視索引,也可用於修改索引。
index關鍵字建立索引
可以使用專門用於建立索引的 CREATE INDEX 語句在一個已有的表上建立索引,但該語句不能建立主鍵。
CREATE INDEX 索引名 ON 表名 (列名 [長度] [ASC|DESC])
<索引名>:指定索引名。一個表可以建立多個索引,但每個索引在該表中的名稱是唯一的。
<表名>:指定要建立索引的表名。
<列名>:指定要建立索引的列名。通常可以考慮將查詢語句中在 JOIN 子句和 WHERE 子句裡經常出現的列作為索引列。
<長度>:可選項。指定使用列前的 length 個字元來建立索引。使用列的一部分建立索引有利於減小索引檔案的大小,節省索引列所佔的空間。在某些情況下,只能對列的字首進行索引。索引列的長度有一個最大上限 255 個位元組(MyISAM 和 InnoDB 表的最大上限為 1000 個位元組),如果索引列的長度超過了這個上限,就只能用列的字首進行索引。另外,BLOB 或 TEXT 型別的列也必須使用字首索引。
ASC|DESC:可選項。ASC指定索引按照升序來排列,DESC指定索引按照降序來排列,預設為ASC。
例如,要為列c4新增新索引,請使用以下語句:
CREATE INDEX idx_c4 ON t(c4);
預設情況下,如果未指定索引型別,MySQL將建立B-Tree索引。
index關鍵字檢視索引
SHOW INDEX FROM 表名 [FROM 資料庫名]
語法說明如下:
<表名>:指定需要檢視索引的資料表名。
<資料庫名>:指定需要檢視索引的資料表所在的資料庫,可省略。比如,SHOW INDEX FROM student FROM test; 語句表示檢視 test 資料庫中 student 資料表的索引。
範例:
mysql> SHOW INDEX FROM tb_stu_info2\G *************************** 1. row *************************** Table: tb_stu_info2 Non_unique: 0 Key_name: height Seq_in_index: 1 Column_name: height Collation: A Cardinality: 0 Sub_part: NULL Packed: NULL Null: YES Index_type: BTREE Comment: Index_comment: 1 row in set (0.03 sec)
其中各主要引數說明如下:
引數 | 說明 |
---|---|
Table | 表示建立索引的資料表名,這裡是 tb_stu_info2 資料表。 |
Non_unique | 表示該索引是否是唯一索引。若不是唯一索引,則該列的值為 1;若是唯一索引,則該列的值為 0。 |
Key_name | 表示索引的名稱。 |
Seq_in_index | 表示該列在索引中的位置,如果索引是單列的,則該列的值為 1;如果索引是組合索引,則該列的值為每列在索引定義中的順序。 |
Column_name | 表示定義索引的列欄位。 |
Collation | 表示列以何種順序儲存在索引中。在 MySQL 中,升序顯示值「A」(升序),若顯示為 NULL,則表示無分類。 |
Cardinality | 索引中唯一值數目的估計值。基數根據被儲存為整數的統計資料計數,所以即使對於小型表,該值也沒有必要是精確的。基數越大,當進行聯合時,MySQL 使用該索引的機會就越大。 |
Sub_part | 表示列中被編入索引的字元的數量。若列只是部分被編入索引,則該列的值為被編入索引的字元的數目;若整列被編入索引,則該列的值為 NULL。 |
Packed | 指示關鍵字如何被壓縮。若沒有被壓縮,值為 NULL。 |
Null | 用於顯示索引列中是否包含 NULL。若列含有 NULL,該列的值為 YES。若沒有,則該列的值為 NO。 |
Index_type | 顯示索引使用的型別和方法(BTREE、FULLTEXT、HASH、RTREE)。 |
Comment | 顯示評註。 |
index關鍵字修改索引
DROP INDEX <索引名> ON <表名>
語法說明如下:
<索引名>:要刪除的索引名。
<表名>:指定該索引所在的表名。
說明:
在 MySQL 中修改索引可以通過刪除原索引,再根據需要建立一個同名的索引,從而實現修改索引的操作。
【相關推薦:】
以上就是mysql index關鍵字的用法是什麼的詳細內容,更多請關注TW511.COM其它相關文章!