我正在考虑并行执行所有数据库查询。
我当前的代码如下所示
mysql_connect("host", "user", "pass");
$dbcheck = mysql_select_db("db");
if ($dbcheck) {
/* BLOCK - 1*/
$result_1 = mysql_query($query1);
if (mysql_num_rows($result_1) > 0) {
while ($row_1 = mysql_fetch_assoc($result_1)) {
$a=$row_1["AA1"];
$b=$row_1["AA2"];
$a[]="['".$a."',".$b."]";
}
}
/* BLOCK - 2*/
$result_2 = mysql_query($query2);
if (mysql_num_rows($result_2) > 0) {
while ($row_2 = mysql_fetch_assoc($result_2)) {
$ac1=$row_2["ab1"];
$ac2=$row_2["ab2"];
$chart_array_2[]="['".$ac1."',".$ac2."]";
}
}
}
我相信以上顺序运行。我想做的是并行执行“BLOCK - 1”和“BLOCK - 2”。我有大约 20 个这样的 block 。我想同时启动它们。
我在谷歌上看过。他们中的大多数人都在谈论并行运行数据库查询。我无法找到一种方法来满足我的要求。请问在 PHP 中有没有一种方法可以并行启动每个 block ?
最佳答案
改用循环
mysql_connect("host", "user", "pass");
$dbcheck = mysql_select_db("db");
if ($dbcheck) {
for($i=1;$i<=20;$i++) {
/* BLOCK - $i*/
$result = mysql_query($query[$i]);
if (mysql_num_rows($result) > 0) {
while ($row[$i] = mysql_fetch_assoc($result)) {
$a[$i]=$row[$i]["AA1"];
$b[$i]=$row[$i]["AA2"];
$a[$i][]="['".$a."',".$b."]";
}
}
}
关于PHP/MYSQL 并行代码/查询执行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30930388/