MySQL 可以利用索引来快速地执行 ORDER BY 和 GROUP BY 语句的排序和分组操作。因此,在数据库设计时,设计索引应该尽可能地同时满足查询和排序,使用同一个索引既用于查询,又用于排序。
对于只存在 ORDER BY 的 SQL 语句,可以在 ORDER BY 的字段上创建索引。
举个例子,可以在 prior 上创建 news_prior_idx(prior) 索引,就可以实现利用索引进行 ORDER BY 优化。
- select * from news order by prior
对于同时存在 WHERE 和 ORDER BY 的 SQL 语句,可以建立一个复合索引进行性能优化。
举个例子,可以创建 news_year_idx(year, prior) 索引,就可以实现利用索引进行 ORDER BY 优化。
- select * from news where news_year = 2017 order by prior
来源: http://www.tuicool.com/articles/JjUNnei