我在SQL中运行一个非常基本的选择语句,将两个表连接在一起。当我排除“ORDER BY”子句时,它运行得很好。但是,当我添加“ORDER BY”时,由于表有数百万个结果,查询超时。有什么建议可以解决这个问题,以优化性能吗?
ORDER BY IF(table1.name IS NULL
OR table1.name = '', table2.uuid,
table1.name),
table2.uuid
字符串
我删除了顺序,只是在table2.uuid上排序,这提高了性能,并在ms中运行查询。我希望通过table1.name排序,并保留功能,但如果可能的话,改进其完成方式。
1条答案
按热度按时间wixjitnu1#
索引:请确保对ORDER BY子句中使用的列进行了索引。索引可以显著加快排序操作的速度。在您的情况下,请考虑对IF条件中使用的列和table2.uuid列进行索引。
字符串
**优化ORDER BY子句:**如果可能的话,请简化ORDER BY子句。在您的情况下,您可能会尝试避免在ORDER BY子句中直接使用IF等函数。相反,您可以使用CASE语句:
型