$id = $user['id']; // the ID of the logged in user, we are retrieving his friends
$friends = $db->query("SELECT * FROM friend_requests WHERE accepted='1' AND (user1='".$id."' OR user2='".$id."') ORDER BY id DESC");
while($friend = $friends->fetch_array()) {
$fr = $db->query("SELECT id,profile_picture,age,full_name,last_active FROM users WHERE (id='".$friend['user1']."' OR id='".$friend['user2']."') AND id != '".$id."'")->fetch_array();
echo $fr['age'];
}
我基本上循環所有的朋友,並獲得有關每個人的信息。如何使用SQL查詢優化while循環?
我以前會如何優化它,我知道這麼多次運行這個查詢效率低下,考慮到成千上萬的「朋友」,但我不確定如何去優化它。任何幫助表示讚賞,謝謝。
並且是什麼的問題;速度? –
是的,速度是一個很大的問題,因爲有很多用戶。 –
先運行你的選擇,然後做你的循環,並確保你的表正確索引。你也可以看看分頁和LIMIT等等。我也不知道你爲什麼使用'fetch_array()'兩次。 –