数据表两个字段分别建了索引,这两个字段联合查询能否使用索引呢?
如题,假设表中二个字段 type1 和 type2 都分别独立设置了索引,现在需要联合查询,即使用
where type1=111 and type2=222
请问这个查询会走索引吗?敬请高手解惑,多谢!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
如题,假设表中二个字段 type1 和 type2 都分别独立设置了索引,现在需要联合查询,即使用
where type1=111 and type2=222
请问这个查询会走索引吗?敬请高手解惑,多谢!
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
接受
或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
发布评论
评论(8)
只会走其中一个,多个字段的话建议创建联合索引。
http://www.cnblogs.com/han-10...
会走单独的某一个索引,如果你同时查两个的话,建议建立 (type1,type2)的索引,可以学习一下索引的匹配机制,最左前缀匹配。
会走其中一个索引,最好是建一个联合索引,筛选率高的字段放在前面
按照原理来说,一个索引一棵树,你想要到树上找东西,那么能同时一个人爬两棵树么,肯定不行。
会走单独的索引。根据最左前缀的规则,为何不建立联合索引呢。
通常情况下mysql只会选择一个索引做查询;特殊情况下才会index merge! 因此最好建联合索引,但是得注意字段顺序,将选择性高的字段放在前面
记住
MYSQL在查询的时候只能使用一个索引。
看情况,如果type1索引筛选的数据少于type2,那mysql会选择type1,反之亦然。
建议设置
type1,type2
联合索引用视图建虚拟表查