MySQL的多个查询限制为1,UNION会提高速度吗?

时间:2014-10-26 05:54:59

标签: mysql database performance optimization union

我有大约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);

1 个答案:

答案 0 :(得分:1)

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