MySQL中联合索引非首列也可以走索引,为什么?

我发现一个很奇怪的事情。例如,表t1除了主键外有a,b,c三个字段,类型都是int,然后创建abc的联合索引,最左匹配原则是说要从第一个字段开始走索引,但经过我实际测试,select * from t1 where b=**和select * from t1 where c=**,这两个SQL语句都能走联合索引。
但是,如果a,b,c的类型改为varchar,上述SQL语句就不能走索引了,我真的搞不懂,这是为什么,这不符合最左匹配的原则啊!

阅读 2.1k
1 个回答

如果你改成varchar,那么你select * from t1 where b="xx" b这个值是string类型吗

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题