在网上看一些文章的时候,发现好几次下面这样的话:如果经常需要同时对两个字段进行AND查询,那么使用两个单独索引不如建立一个复合索引,因为两个单独索引通常数据库只能使用其中一个,而使用复合索引因为索引本身就对应到两个字段上的,效率会有很大提高。但是,往往都没有说为什么?想知道以下问题:1、是不是在任何情况下数据库查询一次只会使用到一个索引?2、如果不是,那么什么情况下只会使用一个索引?3、那分别是什么造成上面的查询索引使用问题呢?
2 回答
蝴蝶不菲
TA贡献1810条经验 获得超4个赞
只能使用1个,所以要合理的使用组合索引,而不是单列索引。那么如何合理规划组合索引?这里教你一个简单的原则,例如selectcount(1)fromtable1wherecolumn1=1andcolumn2='foo'andcolumn3='bar'上例中,我们看到where了3个字段,那么请为这3个字段建立组合索引,同理,这也适用于orderby或groupby字段。
添加回答
举报
0/150
提交
取消