首页 > 数据库中查询记录时是否每次只能使用一个索引?

数据库中查询记录时是否每次只能使用一个索引?

在网上看一些文章的时候,发现好几次下面这样的话:

如果经常需要同时对两个字段进行AND查询,那么使用两个单独索引不如建立一个复合索引,因为两个单独索引通常数据库只能使用其中一个,而使用复合索引因为索引本身就对应到两个字段上的,效率会有很大提高。

但是,往往都没有说为什么?想知道以下问题:
1、是不是在任何情况下数据库查询一次只会使用到一个索引
2、如果不是,那么什么情况下只会使用一个索引
3、那分别是什么造成上面的查询索引使用问题呢?


只能使用1个


只能使用1个,所以要合理的使用组合索引,而不是单列索引。

那么如何合理规划组合索引?这里教你一个简单的原则,例如

select count(1) from table1 where column1 = 1 and column2 = 'foo' and column3 = 'bar'

上例中,我们看到 where 了 3 个字段,那么请为这 3 个字段建立组合索引,同理,这也适用于 order by 或 group by 字段。

【热门文章】
【热门文章】