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社群論壇...