mysql是否使用索引进行排序...

时间:2011-07-28 12:18:14

标签: mysql sql sorting

如果排序列上有索引,排序是否使用mysql索引?还有什么其他东西是用于索引?

它在列的组合和单独索引中有何不同?

2 个答案:

答案 0 :(得分:25)

是的,当订单是按排序列时,MySQL使用您的索引对信息进行排序。

此外,如果您已将所有列中的索引添加到 SELECT 子句中,则MySQL将不会从表本身加载数据,而是从索引加载数据(更快)。 / p>

组合索引和单独索引之间的区别在于MySQL不能为每个查询使用超过一个索引,因此,如果您的查询过滤了很多列并且您希望将其正确编入索引,那么您将需要创建所有列的组合索引。

但在向表中添加大量索引之前,请记住每个索引都会使插入/更新/删除操作变慢。

我还强烈推荐O'Reilly撰写的High Performance MySQL书,其中将深入介绍所有这些问题以及您需要知道的其他许多提示,以便真正能够使用MySQL达到极限。

答案 1 :(得分:1)

索引不仅用于排序,还用于SELECTING。

E.g。 select * from mytable where id = 1将在id列上使用索引(如果有)。