哪种查询使用正确?我需要获取这些数据的数组。我在谈论PHP的基准和标准。
$sql = "SELECT * FROM users AS u INNER JOIN users_groups AS ug ON (u.id = ug.user_id)";
$array = $sql->fetchAll();
或
$sql = "SELECT * FROM users";
foreach($sql as $value) {
$array[] = $users_group = "SELECT * FROM users_groups WHERE user_id = $value[id]";
}
return $array;
答案 0 :(得分:0)
从性能角度来看,第一个查询要好得多,因为第二个查询可能会导致n + 1个查询,其中n是用户数。通常,最好避免往返服务器。
答案 1 :(得分:0)
在性能方面,我总是使用你的第一个查询,因为在查询本身中应用所有条件获取所需数据总是更好,而不是在PHP中使用循环多次点击mysql服务器也会导致延迟在表现
您可以使用microtime()
例如: -
$start_time = microtime(true);
// your code
$end_time = microtime(true);
$exe_time = $end_time-start_time;
echo "execution time: ".$exe_time;