MySQL:order by上的索引


风晓
风晓 2023-12-28 13:58:24 63227 赞同 0 反对 0
分类: 资源
本文主要讲order by上的索引

通过执行计划当发现 type的列为index的时候,则说明MySQL使用了索引扫描来做排序。

只有当索引的列顺序和order by字句的顺序完全一致,并且所有的列的要么是升序排列,要么全部是降序排列,所有的列的排序方向都一致时,MySQL才能使用索引来对结果进行排序,如果查询需要关联多张表,则只有当order by子句引用的字段全部为第一张表时,才能使用索引做排序。

order by子句和查找语句的限制是一样的,即需要满足最左匹配,最左前缀的要求,否则无法利用索引排序,但是有个例外,order by可以不满足这个条件也可以进行索引排序,那就是前导列是常量的时候。如果where子句和join子句对这些列指定了常量,就可以“弥补”索引的不足。也就是说where后面的字段的查询值是常量,然后order by后面。。看下面的例子


不能用索引的情况:


如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!

评价 0 条
风晓L1
粉丝 1 资源 2038 + 关注 私信
最近热门资源
麒麟系统版本介绍白皮书  518
MiSans 阿拉伯语字体文件  462
解决新版本麒麟系统中微信打开白屏显示  402
麒麟系统进行系统监控,查看进程的运行时间来优化性能  334
临时关闭swap分区与永久关闭swap分区(注意必须确保系统有足够内存运行!)  226
统信桌面专业版添加字体  219
统信uos单一程序黑屏,任务栏正常显示解决办法  218
统信uos快捷键文档  189
统信系统双无线网卡设置关闭开启单一网卡  146
分享一个磁盘恢复工具,适用于多平台(包括统信)  124
最近下载排行榜
麒麟系统版本介绍白皮书 0
MiSans 阿拉伯语字体文件 0
解决新版本麒麟系统中微信打开白屏显示 0
麒麟系统进行系统监控,查看进程的运行时间来优化性能 0
临时关闭swap分区与永久关闭swap分区(注意必须确保系统有足够内存运行!) 0
统信桌面专业版添加字体 0
统信uos单一程序黑屏,任务栏正常显示解决办法 0
统信uos快捷键文档 0
统信系统双无线网卡设置关闭开启单一网卡 0
分享一个磁盘恢复工具,适用于多平台(包括统信) 0
作者收入月榜
1

prtyaa 收益399.62元

2

zlj141319 收益236.11元

3

IT-feng 收益219.61元

4

1843880570 收益214.2元

5

风晓 收益208.24元

6

哆啦漫漫喵 收益204.5元

7

777 收益173.07元

8

Fhawking 收益106.6元

9

信创来了 收益106.03元

10

克里斯蒂亚诺诺 收益91.08元

请使用微信扫码

添加我为好友,拉您入交流群!

请使用微信扫一扫!