MySQL优化之order by

文章讨论了MySQL中的orderby操作如何受索引影响,包括UsingFilesort和UsingIndex的概念。创建合适的索引能显著提升排序性能,尤其是遵循最左前缀法则的多字段索引。同时,注意索引的方向(ASC/DESC)对混合排序的影响。使用覆盖索引可避免回表查询,提高查询效率。调整排序缓冲区大小sort_buffer_size也能优化大数据量排序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

MySQL之order by优化

  1. .Using filesort:通过表的索引或全表扫描,读取满足条件的数据行,然后在排序缓冲区sort buffer中完成排序操作,所有不是通过索引直接返回排序结果的排序都叫 FileSot 排序。
  2. Using index:通过有序索引顺序扫描直接返回有序数据,这种情况即为 using index,不需要额外排序,操作效率高。
#没有创建索引时,根据age, phone进行排序
explain select id,age,phone from tb_user order by age , phone;
#创建索引
create index idx user age phone aa on tb_user(age,phone):
#创建索引后,根据age,phone进行升序排序
explain select id,age,phone from tb_user order by age , phone;
#创建索引后,根据age,phone进行降序排序
explain select id,age,phone from tb_user order by age desc , phone desc;

在这里插入图片描述


在这里插入图片描述


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值