Find centralized, trusted content and collaborate around the technologies you use most.
Teams
Q&A for work
Connect and share knowledge within a single location that is structured and easy to search.
我想对某个字段执行排序操作。在该字段上建立索引是否有利。例如:
SELECT * FROM `users` WHERE `age`=33 ORDER BY `name`
在这个查询中,我知道有一个关于年龄的索引是有帮助的,但是如果我维护一个名字的索引会更好。通过索引它是否会提高性能。并且ORDER BY其他查询也经常需要该操作。
ORDER BY
单独的索引name不太可能对这个查询有很大帮助,但索引(age, name)会。
name
(age, name)
虽然它并不完全准确,但将索引视为按索引中的键排序的行列表(例如,age首先排序,然后排序name)通常是有益的。对于您的示例查询,所有带有 的行age=33自然会来自按名称排序的复合索引,从而使您无需进行单独的排序。有一个单独的索引name不会有同样的帮助。
age
age=33