4

我有使用 order-by group-by 的查询

选择计数(*),归档2
从 table1 where field1>x group by filed2 order by count(*) desc

此查询的最佳索引是什么。
我应该单独索引filed1,field2还是一起索引?

4

1 回答 1

-1

您应该以两种不同的顺序创建包含两列的索引

ALTER TABLE table1 ADD INDEX field1_field2_ndx (field1,field2);
ALTER TABLE table1 ADD INDEX field2_field1_ndx (field2,field1);

您不应创建单独的索引,因为使用两列创建索引将导致查询仅通过索引来满足查询。它永远不需要碰桌子。

即使您创建了单独的索引,查询优化器也会选择两列索引。

现在您有了两个索引,只需相信查询优化器会选择正确的索引。根据查询,EXPLAIN 计划将选择field2_field1_ndx索引。

于 2013-01-16T21:15:41.123 回答