程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> MySQL中關於索引的根本增刪查改操作總結

MySQL中關於索引的根本增刪查改操作總結

編輯:MySQL綜合教程

MySQL中關於索引的根本增刪查改操作總結。本站提示廣大學習愛好者:(MySQL中關於索引的根本增刪查改操作總結)文章只能為提供參考,不一定能成為您想要的結果。以下是MySQL中關於索引的根本增刪查改操作總結正文


創立索引

MySQL創立索引的語法以下:

CREATE [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name
  [USING index_type]
  ON table_name (index_col_name,...)

個中對應的語法變量信息以下:

[UNIQUE|FULLTEXT|SPATIAL]
中括號中的這三個症結字表現創立的索引類型,它們分離表現獨一索引、全文索引、空間索引三種分歧的索引類型。假如我們不指定任何干鍵字,則默許為通俗索引。
index_name
index_name表現索引的稱號,由用戶自行界說,以便於今後對該索引停止修正等治理操作。
index_type
index_type表現索引的詳細完成方法,在MySQL中,有兩種分歧情勢的索引——BTREE索引和HASH索引。在存儲引擎為MyISAM和InnoDB的表中只能應用BTREE,其默許值就是BTREE;在存儲引擎為MEMORY或許HEAP的表中可使用HASH和BTREE兩品種型的索引,其默許值為HASH。
index_col_name
index_col_name表現須要創立索引的字段稱號,我們還可以針對多個字段創立復合索引,只須要在多個字段稱號之間以英文逗號離隔便可。
另外,關於CHAR或VARCHAR類型的字段,我們還可以只應用字段內容後面的一部門來創立索引,只須要在對應的字段稱號前面加上形如(length)的指令便可,表現只須要應用字段內容後面的length個字符來創立索引。在這裡,我們以User表的username字段(類型為VARCHAR(50))為例,應用username字段的6個字符前綴來創立索引。

CREATE INDEX idx_user_username ON user (username(6));

因為多半字段的前6個字符平日分歧,所以此索引不會比應用字段的全體內容創立的索引速度慢許多。別的,應用字段的一部門創立索引可使索引文件年夜年夜減小,從而節儉了年夜量的磁盤空間,有能夠進步INSERT操作的速度。

在MySQL中,前綴長度最年夜值為255字節。關於存儲引擎為MyISAM或InnoDB的數據表,前綴最長為1000字節。

必需留意的是,在MySQL中,關於TEXT和BLOB這類年夜數據類型的字段,必需給出前綴長度(length)能力勝利創立索引。

備注1:上述創立索引的語法還具有以下變體:

ALTER TABLE table_name
ADD [UNIQUE|FULLTEXT|SPATIAL] INDEX index_name (index_col_name,...) [USING index_type]

備注2:在MySQL中,只要當數據表的存儲引擎為MyISAM, InnoDB或BDB類型時,你能力向具有NULL值的列或許數據類型為TEXT或BLOB的列添加索引。

刪除索引

在MySQL中刪除索引的辦法異常簡略,其完全語法以下:

--刪除指定表中指命名稱的索引
ALTER TABLE table_name
DROP INDEX index_name;

在這裡,我們編寫SQL語句將下面創立索引的例子中的索引idx_user_username刪除失落,代碼概況以下:

--刪除稱號為idx_user_username的索引
ALTER TABLE user
DROP INDEX idx_user_username;

修正索引

在MySQL中並沒有供給修正索引的直接指令,普通情形下,我們須要先刪除失落原索引,再依據須要創立一個同名的索引,從而變相地完成修正索引操作。

--先刪除
ALTER TABLE user
DROP INDEX idx_user_username;
--再以修正後的內容創立同名索引
CREATE INDEX idx_user_username ON user (username(8));

檢查索引

在MySQL中,要檢查某個數據庫表中的索引也異常簡略,只須要應用以下兩個敕令中的隨意率性一種便可。

--假如檢查索引前,沒有應用user db_name等敕令指定詳細的數據庫,則必需加上FROM db_name
SHOW INDEX FROM table_name [FROM db_name]
--假如檢查索引前,沒有應用user db_name等敕令指定詳細的數據庫,則必需加上db_name.前綴
SHOW INDEX FROM [db_name.]table_name

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved