0

我根据博客中的许多教程和 stackoverflow 上的答案进行了以下查询。

$query = mysql_query("SELECT COUNT(user_id) FROM $table f1".
"WHERE (user_id = '$userA')".
"AND EXISTS (SELECT 1 FROM $table f2 WHERE user_id = '$userB'"
"AND f1.$field = f2.$field)")  

or die(mysql_error());  
while($row = mysql_fetch_array($query)){
    $com = $row['COUNT(user_id)'];
}

userA、userB 等参数由 4000 个值的一维数组获取。但实际上,我在循环内使用循环来制作一个 4000x4000 大小的表格。

由于数据库中的数据很多,总查询量将是 17.000.000。所以,我尝试执行完整的脚本,但我看到在上面的查询中花了很多秒(1 或 2)。

您有什么建议可以通过更正上述查询来提高执行速度?

4

1 回答 1

2

我认为您可以使用INNER JOIN如下查询:

 SELECT COUNT(f1.user_id) 
 FROM $table f1 JOIN $table f2 
    ON f1.$field = f2.$field
 WHERE f1.user_id = '$userA'
    AND f2.user_id = '$userB'
于 2012-11-29T03:20:15.440 回答