Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 使用Union或运行查询两次_Php_Mysql_Union - Fatal编程技术网

Php 使用Union或运行查询两次

Php 使用Union或运行查询两次,php,mysql,union,Php,Mysql,Union,我必须运行一个从两个数据库检索记录的查询。这两个数据库的查询是相同的,我使用UNION关系只进行了一次查询 下面的示例将描述我实际想要做的事情 SELECT col1 FROM db1.table1 UNION SELECT col1 FROM db2.table1 ; 我正在使用php执行上述查询,因此我需要知道哪一个对性能更有利运行上述查询一次或进行两次查询并通过php合并结果 SELECT col1 FROM db1.table1 SELECT col1 FROM db2.table1

我必须运行一个从两个数据库检索记录的查询。这两个数据库的查询是相同的,我使用UNION关系只进行了一次查询

下面的示例将描述我实际想要做的事情

SELECT col1 FROM db1.table1 UNION SELECT col1 FROM db2.table1 ;
我正在使用php执行上述查询,因此我需要知道哪一个对性能更有利运行上述查询一次或进行两次查询并通过php合并结果

SELECT col1 FROM db1.table1
SELECT col1 FROM db2.table1
请注意,我使用的是复杂的mysql查询,它使用正则表达式,有时使用子查询


谢谢

唯一确定的方法是对它进行基准测试,我没有这样做。以下是我对差异的最佳猜测,假设:

  • 在这两种情况下,PHP都有一些后期处理(例如,将结果打印到浏览器)
  • 您将始终同时运行这两个查询(要么都在查询缓存中,要么没有)
  • 如果单独运行它们,则在PHP中实现重复行删除
如果没有重复行:

由于运行两个查询而不是一个查询的开销,联合应该以固定的时间(例如30毫秒)更快

如果有重复行:


union将为您节省一些流量和PHP处理,并且可能会显著加快速度(如果有大量重复项)。

要从不同的数据库中选择记录,您需要使用不同的连接字符串。您应该有2个连接字符串-一个用于第一个DB,另一个用于第二个DB。所以,我想,工会在这里是行不通的。这是唯一知道的方法。联盟可能会稍微快一点。@KA_-lin我的连接没有问题,我已经试过了,它正在工作。我的问题是关于性能,最好是对每个数据库进行双重查询,还是对每个aline进行单一查询,然后通过以下方式合并结果php@MohammedIbrahim:链接中的问题是这样开始的:“在MySQL(使用PHP)中,哪一个更高效/更好的实践/成本更低?”?选择两个单独的语句,将它们合并成一个,或者其他什么…“这是一样的,你读过整个线程了吗?”?