数据表两个字段分别建了索引,这两个字段联合查询能否使用索引呢?

如题,假设表中二个字段 type1 和 type2 都分别独立设置了索引,现在需要联合查询,即使用

where type1=111 and type2=222

请问这个查询会走索引吗?敬请高手解惑,多谢!

阅读 6k
8 个回答

会走其中一个索引,最好是建一个联合索引,筛选率高的字段放在前面

按照原理来说,一个索引一棵树,你想要到树上找东西,那么能同时一个人爬两棵树么,肯定不行。

会走单独的索引。根据最左前缀的规则,为何不建立联合索引呢。

通常情况下mysql只会选择一个索引做查询;特殊情况下才会index merge! 因此最好建联合索引,但是得注意字段顺序,将选择性高的字段放在前面

记住MYSQL在查询的时候只能使用一个索引。
看情况,如果type1索引筛选的数据少于type2,那mysql会选择type1,反之亦然。
建议设置
type1,type2联合索引

用视图建虚拟表查

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