如果排序列上有索引,排序是否使用mysql索引?还有什么其他东西是用于索引?
它在列的组合和单独索引中有何不同?
答案 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列上使用索引(如果有)。