mysql - 使用多个查询或 vs 联合多个查询,哪个会更快?

标签 mysql optimization query-optimization unions

顾名思义,使用multiple or 的查询会更快,还是使用union joined 的多个查询 会更快?为了简单起见,我只连接了两个表,但连接中可以有更多表。

例如,

    select isbn, booktitle from book as b left join publisher as p
        on b.publisherid = p.publisherid
        where 
           booktitle like '%mysql%' or
           isbn like '%mysql%' or
           publishername like '%mysql%'  

对比

      select isbn, booktitle from book as b left join publisher as p
   on b.publisherid = p.publisherid
   where 
    booktitle like '%mysql%'  
   union 
   select isbn, booktitle from book as b left join publisher as p
   on b.publisherid = p.publisherid
   where 
    isbn like '%mysql%' 
   union 
   select isbn, booktitle from book as b left join publisher as p
   on b.publisherid = p.publisherid
    where 
    publishername like '%mysql%'  

最佳答案

我看不出你的工会会更快。您必须扫描并加入 3 次,与第一次一样,您只扫描一次,并且对于每个加入的记录,您都可以应用条件。

关于mysql - 使用多个查询或 vs 联合多个查询,哪个会更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4164588/

相关文章:

c++ - 在 C++ 中高效使用 bool 值 true 和 false?

performance - Neo4j 查询需要很长时间

PHP SERVER_TIMEZONE_OFFSET 解释

mysql - 批量 MySQL 插入比 PHP 慢 2 倍

mysql - 查询两个表,结果与 join like 语句相反

mysql - 在 PhpMyAdmin 中分析查询统计信息

python - 为什么 python 中的空函数调用对于动态编译的 python 代码要慢 15% 左右

mysql - 为什么这个查询使用 MySQL 这么慢?

sql - 改进SQL查询: Cumulative amounts over time

mysql - 按表名显示组中所有 no 和 yes 的计数