为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
波斯汪 2019-03-18 18:03:29
如题,假设表中二个字段 type1 和 type2 都分别独立设置了索引,现在需要联合查询,即使用 where type1=111 and type2=222 请问这个查询会走索引吗?敬请高手解惑,多谢!
查看完整描述

8 回答

?
莫回无

TA贡献1865条经验 获得超7个赞

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

查看完整回答
反对 回复 2019-03-18
?
撒科打诨

TA贡献1934条经验 获得超2个赞

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

查看完整回答
反对 回复 2019-03-18
?
一只名叫tom的猫

TA贡献1906条经验 获得超3个赞

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

查看完整回答
反对 回复 2019-03-18
?
白板的微信

TA贡献1883条经验 获得超3个赞

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

查看完整回答
反对 回复 2019-03-18
?
月关宝盒

TA贡献1772条经验 获得超5个赞

用视图建虚拟表查

查看完整回答
反对 回复 2019-03-18
?
饮歌长啸

TA贡献1951条经验 获得超3个赞

会走单独的某一个索引,如果你同时查两个的话,建议建立 (type1,type2)的索引,可以学习一下索引的匹配机制,最左前缀匹配。


查看完整回答
反对 回复 2019-03-18
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

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

查看完整回答
反对 回复 2019-03-18
  • 8 回答
  • 0 关注
  • 2626 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信