mysql有聯合索引嗎

mysql中有聯合索引;聯合索引指的是對表上的兩個或者兩個以上的列字段進行索引,也被稱為復合索引,如果僅對聯合索引后面的任意列執行搜索時,該索引是不會有任何作用,創建該索引的語法為“create index 索引名 on 表名 (字段名1,字段名2,…)”。

mysql有聯合索引嗎

本教程操作環境:windows10系統、mysql8.0.22版本、Dell G3電腦。

mysql有聯合索引嗎

mysql有聯合索引

聯合索引:也叫復合索引,指對表上的兩個或兩個以上的列字段進行索引。

Mysql從左到右使用索引中的字段,一個查詢可以只使用索引中的一部分,但只能是最左側部分。例如索引是key index (a,b,c),可以支持a | a,b| a,b,c 3種組合進行查找,但不支持 b,c組合查找

提示:僅僅對聯合索引后面的任意列執行搜索時,該索引是不會有任何作用

--?用戶表 CREATE?table?`user`?( ??`id`?int(4)?NOT?NULL?COMMENT?'主鍵ID', ??`name`?varchar(4)?NOT?NULL?COMMENT?'姓名', ??`age`?int(3)?NOT?NULL?COMMENT?'年齡', ??PRIMARY?KEY?(`id`) )

1.創建索引

? 如上圖所示,我們創建好了用戶表,如果我們想在該表的name和age列字段上創建聯合索引,可采用下述SQL:

create?index?index_name_age?on?user?(name,age);

創建聯合索引的語法:create index 索引名 on 表名 (字段名1,字段名2,…)

?2.刪除索引

?如果我們覺得所創建的聯合索引不適宜,可采用下述SQL刪除聯合索引:

drop?index?index_name_age?on?user;

?或者采用:alter table 表名 drop index 索引名

alter?table?user?drop?index?index_name_age;

?3.存在同名索引時會報錯

? 假設已經創建了組合索引(index_name_age),如果再次創建該索引就會報下述錯誤:

Query?:?create?index?index_name_age?on?user?(name,age) Error?Code?:?1061 Duplicate?key?name?'index_name_age'

4.查看索引

?查看索引的語法:show index from 表名

SHOW?INDEX?FROM?USER;

推薦學習:mysql視頻教程

以上就是

? 版權聲明
THE END
喜歡就支持一下吧
點贊14 分享