列上的索引 - 两个分离的索引VS一个组索引?

时间:2015-11-22 08:59:58

标签: mysql performance indexing

我有这样的查询:

select sum(col1) from table where col2 = 'X' and col3 = 'Y';

现在我想知道,哪一个更好?

分隔索引:

  KEY `col2` (`col2`),
  KEY `col3` (`col3`)

组索引:

  KEY `both` (`col2`,`col3`)

另外我想知道,col1需要索引?

2 个答案:

答案 0 :(得分:2)

where col2 = 'X' and col3 = 'Y';

这个WHERE决定使用复合指数:

KEY `both` (`col2`,`col3`)

col1不需要编入索引,因为你没有在它上面。

注意:如果您还有其他查询在没有col2的col3上执行WHERE,答案可能会有所不同..

答案 1 :(得分:0)

我认为本文将为您提供完整的答案:

https://www.percona.com/blog/2009/09/19/multi-column-indexes-vs-index-merge/