是否可以启动两个sql查询以便它们同时运行?
在一个php文件中,我在Postgresql数据库上执行两个查询。使用前两个查询返回的值,然后执行第三个查询。

function one(){
   $query = pg_query($con, $sql);
   $a = pg_fetch_result($query, 0, 0);
   return $a;
}
function two(){
   $query = pg_query($con, $sql);
   $b = pg_fetch_result($query, 0, 0);
   return $b;
}

function three($a, $b){
   //$a + $b used to construct query $sql
   $query = pg_query($con, $sql);
   $c = pg_fetch_result($query, 0, 0);
   return $c;
}

是否可以同时运行onetwo函数?我考虑的另一种方法是将ab全局变量设置为null。然后,不是函数onetwo返回任何值,而是在它们完成时设置ab的值。然后我不断检查ab是否不为空,如果为真,则调用函数three
搜索此主题时,我读到有关pcntl的内容,但我不清楚这是否是执行此类计算的最佳方式。默认情况下,pcntl未安装在我的网络宿主服务(WebFaction)上。
另一种方法可能是使用pg_send_query_params()使我能够使用不同的参数执行相同的查询,这可能比我原来的方法更快。

最佳答案

是的,您可以使用Threads同时运行两个查询。
但如果你不知道如何正确处理它们,我建议不要使用Thread,因为它会导致RACE状况。
我的建议是直接调用两个函数并将它们存储在变量中,然后将其传递给第三个函数。它不会影响您的页面性能。

关于php - 如何使用PHP/SQL并行运行两个sql查询?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12870065/

10-11 02:55
查看更多