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

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

where type1=111 and type2=222

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

波斯汪
浏览 2627回答 8
8回答

莫回无

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

撒科打诨

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

一只名叫tom的猫

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

白板的微信

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

月关宝盒

用视图建虚拟表查

饮歌长啸

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

慕的地6264312

会走其中一个索引,最好是建一个联合索引,筛选率高的字段放在前面
打开App,查看更多内容
随时随地看视频慕课网APP