当前位置:  开发笔记 > 后端 > 正文

严重的MySQL性能问题(连接,临时表,Filesort ....)

如何解决《严重的MySQL性能问题(连接,临时表,Filesort.)》经验,为你挑选了1个好方法。



1> David M..:

您可以执行UNION of 2查询而不是OR.我知道在至少一个其他DBMS中这个速度快一个数量级的实例,并且我猜测MySQL的查询优化器可能共享相同的"特性".

SELECT  whatever
FROM    votes v
        INNER JOIN
                users u
                ON v.user_id_1 = u.uid
WHERE   v.user_id_2 = 9834
AND     v.votes_2 = 0

UNION

SELECT  whatever
FROM    votes v
        INNER JOIN
                users u
                ON v.user_id_2 = u.uid
WHERE   v.user_id_1 = 9834
AND     v.votes_1 = 0

ORDER BY updated_at DESC


更好的是,如果不可能重复,请执行UNION ALL(在这种情况下似乎是这样).常规UNION强制排序和重复消除,在这种情况下不应该要求.
推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有