【问题标题】:Does MySQL use index for sorting?MySQL 是否使用索引进行排序?
【发布时间】:2011-10-15 02:08:32
【问题描述】:

如果排序列上有索引,排序是否使用 MySQL 索引?索引还有什么其他用途?

它对列的组合索引和单独索引有什么不同?

【问题讨论】:

标签: mysql sql sorting


【解决方案1】:

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

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

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

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

我还强烈推荐 O'Reilly 的 High Performance MySQL 书籍,它将深入介绍所有这些问题以及您需要了解才能真正使用 MySQL 的许多其他提示到了极限。

【讨论】:

  • mysql 优化器在加快查询速度时会合并不同的索引,因此 MySQL 可以为单个查询使用多个索引,至少在最新版本中是这样。
猜你喜欢
  • 1970-01-01
  • 2014-07-29
  • 1970-01-01
  • 2018-02-11
  • 2018-09-01
  • 2014-12-21
  • 2010-11-11
  • 2012-01-19
相关资源
最近更新 更多