Mysql多个LEFT JOIN使用ORDER不能使用索引导致查询过慢的解决方案

来源:互联网 发布:mac里的视频导出到u盘 编辑:程序博客网 时间:2024/05/22 00:35

MySQL在多个LEFT JOIN的情况下使用ORDER BY排序,就算是其中一个表的主键也仍然使用file sort排序,数据量多的话就相当的慢。

优化前语句

SELECT * FROM a LEFT JOIN b ON a.id=b.a_id ORDER a.id DESC

优化后语句

SELECT * FROM a LEFT JOIN b ON a.id=b.a_id JOIN (SELECT id FROM a ORDER BY id DESC) a_order ON a.id = a_order.id

实际工作中100W+的几个表使用LEFT JOIN要20分钟才能得到结果,语句优化后3秒。

阅读全文
0 0
原创粉丝点击