首頁  >  文章  >  資料庫  >  mysql index關鍵字的用法是什麼

mysql index關鍵字的用法是什麼

青灯夜游
青灯夜游原創
2022-03-01 15:40:584757瀏覽

在mysql中,index關鍵字可用來建立索引,語法「CREATE INDEX 索引名ON 表名(列名)」;可用來檢視索引,語法「SHOW INDEX FROM 表名」;也可用於修改索引,語法「DROP INDEX 索引名ON 表名」。

mysql index關鍵字的用法是什麼

本教學操作環境:windows7系統、mysql8版本、Dell G3電腦。

在mysql中,index指的是索引,是一種特殊的資料庫結構,由資料表中的一列或多列組合而成,可以用來快速查詢資料表中有某一特定值的記錄。

index關鍵字可以用來建立索引,也可用來查看索引,也可用於修改索引。

index關鍵字建立索引

可以使用專門用於建立索引的CREATE INDEX 語句在一個已有的表上建立索引,但該語句不能建立主鍵。

CREATE INDEX 索引名 ON 表名 (列名 [长度] [ASC|DESC])
  • b493f009a433abb929a361542484fbbf:指定索引名。一個表可以建立多個索引,但每個索引在該表中的名稱是唯一的。

  • a26d98d33123a70024fa8ba5642906c6:指定要建立索引的表名。

  • dbbf19904bed3b90013ba2fcce963ac6:指定要建立索引的列名。通常可以考慮將查詢語句中在 JOIN 子句和 WHERE 子句中經常出現的欄位作為索引列。

  • ba904eac313ad550f30b0e6148d7c6f4:可選項。指定使用列前的 le​​ngth 個字元來建立索引。使用列的一部分建立索引有利於減少索引檔案的大小,節省索引列所佔的空間。在某些情況下,只能對列的前綴進行索引。索引列的長度有一個最大上限 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 数据库名]

語法說明如下:

  • a26d98d33123a70024fa8ba5642906c6:指定需要查看索引的資料表名。

  • 50319af392acef3f82ca5b570a39170d:指定需要查看索引的資料表所在的資料庫,可省略。例如,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表示定義索引的欄位。 Collat​​ion表示列以何種順序儲存在索引中。在 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 <表名>

语法说明如下:

  • b493f009a433abb929a361542484fbbf:要删除的索引名。

  • a26d98d33123a70024fa8ba5642906c6:指定该索引所在的表名。

说明:

在 MySQL 中修改索引可以通过删除原索引,再根据需要创建一个同名的索引,从而实现修改索引的操作。

【相关推荐:mysql视频教程

以上是mysql index關鍵字的用法是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn