1

我想对某个字段执行排序操作。在该字段上建立索引是否有利。例如:

SELECT * FROM `users` WHERE `age`=33 ORDER BY `name`

在这个查询中,我知道有一个关于年龄的索引是有帮助的,但是如果我维护一个名字的索引会更好。通过索引它是否会提高性能。并且ORDER BY其他查询也经常需要该操作。

4

1 回答 1

5

单独的索引name不太可能对这个查询有很大帮助,但索引(age, name)会。

虽然它并不完全准确,但将索引视为按索引中的键排序的行列表(例如,age首先排序,然后排序name)通常是有益的。对于您的示例查询,所有带有 的行age=33自然会来自按名称排序的复合索引,从而使您无需进行单独的排序。有一个单独的索引name不会有同样的帮助。

于 2012-06-19T06:13:41.523 回答