關於mysql聯合索引

2022-04-29 02:24:07 字數 981 閱讀 7694

create table `uniontest` (

`id` int(11) not null auto_increment,

`menuname` varchar(50) default null,

`url` varchar(200) default null,

primary key (`id`),

unique key `u_index` (`menuname`,`url`)

) engine=innodb auto_increment=5 default charset=utf8

先建立資料庫,把menuname和url設定為聯合索引

需要注意的幾點:

1、在插入資料的時候mysql 對menuname和url兩列同時做了檢查唯一性

如:insert into uniontest(`menuname`,`url`) values('訂單管理','aaa.php')  成功

insert into uniontest(`menuname`,`url`) values('訂單管理','bbb.php')  成功

insert into uniontest(`menuname`,`url`) values('訂單管理2','aaa.php') 成功

insert into uniontest(`menuname`,`url`) values('訂單管理','aaa.php') 失敗

2、在查詢的時候

explain select * from uniontest where menuname = '訂單管理'   用到索引

explain select * from uniontest where menuname = '訂單管理' and url = 'aaa.php';   用到索引

explain select * from uniontest where url = 'aaa.php'; 沒有用到索引

遵循了聯合索引最左優先的原則。

mysql聯合索引詳解 mysql 聯合索引詳解

聯合索引又叫復合索引。對於復合索引 mysql從左到右的使用索引中的字段,乙個查詢可以只使用索引中的一部份,但只能是最左側部分。例如索引是key index a,b,c 可以支援a a,b a,b,c 3種組合進行查詢,但不支援 b,c進行查詢 當最左側欄位是常量引用時,索引就十分有效。兩個或更多個...

mysql聯合索引技術 mysql 聯合索引詳解

聯合索引又叫復合索引。對於復合索引 mysql從左到右的使用索引中的字段,乙個查詢可以只使用索引中的一部份,但只能是最左側部分。例如索引是key index a,b,c 可以支援a a,b a,b,c 3種組合進行查詢,但不支援 b,c進行查詢 當最左側欄位是常量引用時,索引就十分有效。兩個或更多個...

mysql教程聯合索引 mysql聯合索引詳解

歡迎進入linux社群論壇,與200萬技術人員互動交流 進入 聯合索引又叫復合索引。對於復合索引 mysql從左到右的使用索引中的字段,乙個查詢可以只使用索引中的一部份,但只能是最左側部分。例如索引是key index a,b,c 可以支援a a,b a,b,c 3種組合 歡迎進入linux社群論壇...