MySQL高级性能优化---排序与分组优化

该博客与MySQL高级性能优化相关,主要介绍如何避免Extra中的Using filesort和Using temporay。在排序优化方面,阐述了使用order by时出现Using filesort的多种场景;分组优化方面,指出group by使用不当会出现Using temporay,且索引失效原因与order by类似。

这篇博客跟MySQL高级性能优化—Explain博客有关联,主要讲的是Extra的Using filesort和Using temporay如何避免,不懂Using filesort和Using temporay的朋友建议去看一看这篇MySQL高级性能优化—Explain博客。

1. 排序优化

在使用order by的时候,经常出现Using filesort, 我们应避免Using filesort情况的出现。以下举几个使用order by场景情况的例子来说明

1.1 索引作为排序时

在这里插入图片描述
在这里插入图片描述

1.2 使用order by排序时,如果没有按照索引顺序,会出现Using filesort

在这里插入图片描述

1.3 当使用*时order by即使使用了全部索引,也会出现Using filesort

在这里插入图片描述

1.4 当索引字段为常量时,可以当作是存在索引的

在这里插入图片描述
在这里插入图片描述

1.5 使用排序一升一降会造成Using filesort

在这里插入图片描述
在这里插入图片描述

2. 分组优化

使用group by不当时,会出现Using temporay,group by使用不当导致索引失效的原因是与order by一样的
在这里插入图片描述
在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值