Mysql中use filesort的误区

本文深入探讨MySQL中usefilesort排序机制的真相,揭示其并非简单外部排序,而是在内存中排序,当结果集过大时转为外部排序。通过官方文档及源码分析,帮助读者理解usefilesort的工作原理及其对SQL优化的重要性。

误区一字面误区

use filesort排序,字面上理解是外部排序。

误区二人云亦云

百度上多被大家否定不是外部排序,认为和file这个关键字没关系。用的是快速排序。但是总觉得不可能这么无缘无故叫filesort的,于是去官网查了下。

正解

官方解释

果然,大家认为的只有一半,正解是上面两种都有,use filesort会在内存中排序,但是如果结果集过大不能使用内存就会使用外部排序。(无论filesort底层用的哪种排序都是额外的排序,只不过内存排序比外部排序快一点,都需要优化sql啦~这里只探究filesort原理

验证

下载mysql源码

直接访问github地址https://github.com/mysql/mysql-server/进行下载或直接查看

也可以去官网下载,和下载mysql包一样,不赘述,只需要在最后一步中Select Operating System选择Source Code

查看源码

抛砖引玉~由各位大佬分析一波~~~(悄悄的告诉你们,我压根就找不到排序的c文件在哪...)

~~~~~~

原创,转载请注明来源,翻版必究

转载于:https://www.cnblogs.com/aeolian/p/11199648.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值