一聚教程网:一个值得你收藏的教程网站

热门教程

SQL优化之用union all取代in或or测试

时间:2022-06-29 08:06:27 编辑:袖梨 来源:一聚教程网

使用or:

 代码如下 复制代码

WHERE * FROM article
WHERE article_category=2
OR article_category=3
ORDER BY article_id DESC
LIMIT 5
// 执行时间:11.0777


使用in:

 代码如下 复制代码

SELECT * FROM article
WHERE article_category IN (2,3)
ORDER BY article_id DESC
LIMIT 5
// 执行时间:11.2850


使用union all:

 代码如下 复制代码

(
    SELECT * FROM article
    WHERE article_category=2
    ORDER BY article_id DESC
    LIMIT 5
) UNION ALL (
    SELECT * FROM article
    WHERE article_category=3
    ORDER BY article_id DESC
    LIMIT 5
)
ORDER BY article_id DESC
LIMIT 5
// 执行时间:0.0261

总结,从我们上面测试的实例可以看得出来,性能最好是union all了,in的性能最差,其次就是or了,所以在大数据量查询时我们最好使用union all

热门栏目