mysql order by 造成语句 执行计划中Using filesort,Using temporary相关语句的优化解决
mysql> explain select permission.* from t_rbac_permission permission inner JOIN t_rbac_acl acl on acl.PERMISSION_ID=permission.ID
where permission.menu=1 and acl.PRINCIPAL_TYPE=0 order by permission.create_date desc;
+----+-------------+------------+--------+--------------------+---------+---------+-----------------------------+------+----------------------------------------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+------------+--------+--------------------+---------+---------+-----------------------------+------+----------------------------------------------+
| 1 | SIMPLE | acl | ALL | FKE43AF088F9936F96 | NULL | NULL | NULL | 94 | Using where; Using temporary; Using filesort |
| 1 | SIMPLE | permission | eq_ref | PRIMARY | PRIMARY | 98 | bs_common.acl.PERMISSION_ID | 1 | Using where |
+----+-------------+------------+--------+--------------------+---------+---------+-----------------------------+------+----------------------------------------------+
2 rows in set (0.00 sec)
explain select permission.* from t_rbac_permission permission inner JOIN t_rbac_acl acl
on acl.PERMISSION_ID=permission.ID where permission.menu=1 and acl.PRINCIPAL_TYPE=0 ;
+----+-------------+------------+--------+--------------------+---------+---------+-----------------------------+------+-------------+
| id | select_type | table | type | possible_keys | key | key_len | ref | rows | Extra |
+----+-------------+------------+--------+--------------------+---------+---------+-----------------------------+------+-------------+
| 1 | SIMPLE | acl | ALL | FKE43AF088F9936F96 | NULL | NULL | NULL | 94 | Using where |
| 1 | SIMPLE | permission | eq_ref | PRIMARY | PRIMARY | 98 | bs_common.acl.PERMISSION_ID | 1 | Using where |
+----+-------------+------------+--------+--------------------+---------+---------+-----------------------------+------+-------------+
????? why 加上 order by permission.create_date desc 的影响???
首先查看相关字段是否加上索引如 order by的字段是否加上索引。加上索引之后单表查询看如何??

ok 单表查询还是Using filesort. 查询相关资料进行组合索引试试看
ok,现在终结了,那么试试连接查询。各种测试结果如下:
例如:

增加索引后

效果如下
本文来自博客园,作者:飞龙在生,转载请注明原文链接:https://www.cnblogs.com/flzs/p/14231425.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!