mysql联合索引,abc的争议实践
原因:
在一次和同事讨论mysql联合索引的面试题时出现了争议。主要问题是:a、b、c三个字段作为联合索引,b、c;和a、c情况到底会不会命中索引?
网上查阅相关博客发现很多答案不一样,于是我干脆亲手操作实验一下 ,我使用的mysql版本是5.6
一:创建表
为了更直接贴合面试题,字段直接用AA,BB,CC表示
create table IF NOT EXISTS TEST_COMPOSITE_INDEX
(
`TID` BIGINT NOT NULL AUTO_INCREMENT,
`AA` VARCHAR(50) NOT NULL DEFAULT '' ,
`BB` VARCHAR(50) NOT NULL DEFAULT '',
`CC` VARCHAR(50) NOT NULL DEFAULT '',
`DD` VARCHAR(50) NOT NULL DEFAULT '',
`create_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP,
PRIMARY KEY (`TID`),
KEY `index_comp` (`AA`,`BB`,`CC`)
)ENGINE=InnoDB DEFAULT CHARACTER SET utf8mb4;
sql中我们有两个索引,一:主键TID,二ÿ