MySQL复合索引失效问题

explain select * from t1 where c1='3' and c2 LIKE 'm%' and c3='3';
explain select * from t1 where c1='3' and c2 > 'm' and c3='3';

在我的测试表结构中,每个字段为CHAR(1),索引长度为3

语句一的执行结果为key_len=9,即复合索引全部使用到,c2的LIKE查询并未使c3失效

语句二的c2使用了>查询,即范围查询,导致c3失效。请问这是怎么回事?LIKE与范围查询不是应该差不多的效果吗?

 

补充说明:

MYSQL VERSION:5.7.33 engine:innoDB

修改各个字段为CHAR(2)结构的我也试过了,效果与CHAR(1)相同

 

应该符合最左匹配原则。第一个 是全部用到了索引,Like语句如果是以“%”开始的就不会走索引,第二个的 c2 > 'm' 实际上是没有走索引的,导致第三个也没用到了。