mysql组合索引like的问题

abs.征召 abs.征召 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
建表语句 :
CREATE TABLE `t` (
`c1` char(2) NOT NULL DEFAULT '',
`c2` char(2) NOT NULL DEFAULT '',
`c3` char(2) NOT NULL DEFAULT '',
`c4` char(2) NOT NULL DEFAULT '',
`c5` char(2) NOT NULL DEFAULT '',
KEY `test_index` (`c1`,`c2`,`c3`,`c4`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8

insert into `t` (`c1`, `c2`, `c3`, `c4`, `c5`) values('1','2','3','4','5');
insert into `t` (`c1`, `c2`, `c3`, `c4`, `c5`) values('a','c','df','d','f');
insert into `t` (`c1`, `c2`, `c3`, `c4`, `c5`) values('d','x','d','d','x');
insert into `t` (`c1`, `c2`, `c3`, `c4`, `c5`) values('s','s','df','','d');


测试中发现:
EXPLAIN
SELECT * FROM t WHERE c1 = '1' AND c2 = "2" AND c3 LIKE '3%' AND c4 = '2'
这种语句 4列都可以用到索引

这是为啥呢?
我 看《高性能mysql》中说 “如果某个列是范围查询 他后面的列都无法使用索引优化”

求解~~~


...全文

相关推荐

评论 8
收藏 已收藏
分享
返回顶部
abs.征召
MySQL 57,062 成员 56,759 内容