本文主要是介绍【MYSQL】索引优化思考题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
假设有一张订单表 order,主要包含了主键订单编码 order_no、订单状态 status、提交时间 create_time 等列,并且创建了 status 列索引和 create_time 列索引。此时通过创建时间降序获取状态为 1 的订单编码,以下是具体实现代码:
select order_no from order where status =1 order by create_time desc
建立联合索引(status , create_time)。使用查询字段和排序字段建立联合索引,可以避免文件排序的发生。因为查询时我们只能用到status索引,如果要对create_time进行排序,则需要使用文件排序filesort。
filesort是通过相应的排序算法将取得的数据在内存中进行排序,如果内存不够则会使用磁盘文件作为辅助。虽然在一些场景中,filesort并不是特别消耗性能,但是我们可以避免filesort就尽量避免。
这篇关于【MYSQL】索引优化思考题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!