mysql中有聯合索引;聯合索引指的是對表上的兩個或者兩個以上的列字段進行索引,也被稱為復合索引,如果僅對聯合索引后面的任意列執行搜索時,該索引是不會有任何作用,創建該索引的語法為“create index 索引名 on 表名 (字段名1,字段名2,…)”。
本教程操作環境: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
喜歡就支持一下吧
相關推薦