MySQL 算法的艺术源于 order by 排序的巧用,什么样的配置选择什么样的排序模式是有一定的规定和诀窍,这个就是mysql对于排序的底层原理的选择。
今天就给我大家介绍一下关于mysql底层的排序模式的选择和使用。
一:排序模式
二:如何选择排序模式
三:排序算法
1.1一般的排序模式分为以下几种:
2.1:排序模式的选择需要考虑的因素就是:max_length_for_sort_data
一般查询该属性值的方法如下:
show variables like '%sort_buffer%'
这个属性默认值大小为1024字节
3.1:排序算法同样的原理也是通过判断数据量的大小来选择不同的排序算法。
如果排序取的结果很小,小于内存,那么会使用优先级队列进行堆排序
如下:
SELECT * from users u where u.city ='昆明市' ORDER by name LIMIT 10
这样的sql一般的适用于排序量很小,并且小于内存值选择的排序方式就是优先级队列进行数据堆的排序。
在使用limit加order by排序的时则有两种情况下的排序选择
SELECT * from users u where u.city ='昆明市' ORDER by name LIMIT 100,1
limit a ,b
如果参与排序的数据sort buffer装不下了,那么我们会一批一批的给sort buffer进行内存快速排序,结果放入排序临时文件,最终使对所有排好序的临时文件进行归并排序。
order by 总结
页面更新:2024-05-01
本站资料均由网友自行发布提供,仅用于学习交流。如有版权问题,请与我联系,QQ:4156828
© CopyRight 2020-2024 All Rights Reserved. Powered By 71396.com 闽ICP备11008920号-4
闽公网安备35020302034903号