mysql order by 排序效率慢 SQL 附上

mysql order by 排序效率慢 SQL 附上,第1张

既然查询速度特别快 而且你也只需要排名前一百条的语句,可以用where语句再过滤一下,然后对查询出来的语句再进行排序。相对来说需要排序的数据量会少一些。

例如:

1、select top 100 * from mytable order by operateDate;

2、select * from (select top 100 * from mytable ) a order by a.operateDate;

如果表内数据量比较大的话 ,2 的速度是优于1的。毕竟1是先对表内所有数据排序,然后再进行查询,2只需要排序过滤之后的数据。

2.1 排序方式

数据量小则在内存排序, 数据量大则使用磁盘排序

内存排序 : 直接使用"快速排序"

磁盘排序 : 先将数据分块, 对每个独立的块使用"快速排序", 并将各个块的排序结果存在磁盘上, 然后将各个排好序的块进行合并(merge), 最后返回排序结果

2.2 排序算法

3. 注意点 :


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/8511172.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-17
下一篇 2023-04-17

发表评论

登录后才能评论

评论列表(0条)

保存