[英]php mysql show friends' posts
顯示好友帖子的最佳方法是什么?
每個用戶最多可以有5000個朋友。
腳步:
1)mysql檢索5000個朋友的用戶名。
2)在php數組中存儲5000個朋友的用戶名。
3) SELECT posts, datatime FROM tbl_posts WHERE username IN ($array) ORDER BY id DESC LIMIT 10;
問題:假設zac1987是php數組中的第5000個項目。 如果zac1987發布了10條最新發布的帖子,那么mysql是否需要浪費時間來遍歷5000個項目來確定該帖子是否由他發布? 因此,如果我想顯示10個最新帖子,mysql是否需要遍歷5000個朋友x 10個帖子= 50,000個項目? 每5秒鍾需要檢查是否有新帖子,是否意味着每5秒鍾需要循環50,000個項目? 有什么方法可以防止這么多的循環/過濾項過程嗎?
SELECT p.*
FROM friend f
JOIN post p
ON p.author = f.friend_id
WHERE f.user_id = $myuserid
ORDER BY
p.post_date DESC
LIMIT 10
您應該在post (post_date)
, post (author)
, friend (friend_id, user_id)
上創建索引
根據基數, MySQL
要么在聯接中使post
領先(在這種情況下將使用第一個索引),要么使friend
領先(在這種情況下它將收集所有朋友的帖子並對其進行排序)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.