是否可以启动两个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;
}
是否可以同时运行
one
和two
函数?我考虑的另一种方法是将a
和b
全局变量设置为null
。然后,不是函数one
和two
返回任何值,而是在它们完成时设置a
和b
的值。然后我不断检查a
和b
是否不为空,如果为真,则调用函数three
。搜索此主题时,我读到有关
pcntl
的内容,但我不清楚这是否是执行此类计算的最佳方式。默认情况下,pcntl
未安装在我的网络宿主服务(WebFaction)上。另一种方法可能是使用pg_send_query_params()使我能够使用不同的参数执行相同的查询,这可能比我原来的方法更快。
最佳答案
是的,您可以使用Threads
同时运行两个查询。
但如果你不知道如何正确处理它们,我建议不要使用Thread
,因为它会导致RACE
状况。
我的建议是直接调用两个函数并将它们存储在变量中,然后将其传递给第三个函数。它不会影响您的页面性能。
关于php - 如何使用PHP/SQL并行运行两个sql查询?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12870065/