【问题标题】:MySQL multiple queries with limit 1, will UNION improve speed?MySQL多次查询限制为1,UNION会提高速度吗?
【发布时间】:2014-10-26 05:54:58
【问题描述】:

我在大约 170,000 条记录的数据库中有 3 个以限制 1 结尾的查询。

如果我分别运行这 3 个查询或使用 UNION 将所有 3 个查询结合起来提高速度,有什么区别吗?目前查询返回结果很慢。

所以最终结果会从数据库中返回 3 条记录。

我目前的查询:

select * from table where cat = '%1%' and brand like '%example%' limit 1;
select * from table where cat = '%2%' and brand like '%example2%' limit 1;
select * from table where cat = '%3%' and brand like '%example3%' limit 1;

使用 UNION:

(select * from table where cat = '%1%' and brand like '%example%' limit 1) UNION     (select * from table where cat = '%2%' and brand like '%example2%' limit 1) UNION (select *     from table where cat = '%3%' and brand like '%example3%' limit 1);

【问题讨论】:

    标签: mysql database performance optimization union


    【解决方案1】:

    union 将执行所有三个查询,然后尝试从中删除重复项,因此它几乎肯定会降低性能。使用union all 而不是运行三个单独的查询可能会稍微提高性能,因为它可以节省三个独立执行的来回时间。

    【讨论】:

    • 谢谢,我还能做些什么来加快查询时间?
    猜你喜欢
    • 2019-08-13
    • 2023-04-01
    • 2012-03-31
    • 1970-01-01
    • 2019-10-09
    • 2021-11-17
    • 2021-12-24
    • 1970-01-01
    • 2010-09-07
    相关资源
    最近更新 更多