簡體   English   中英

php mysql顯示朋友的帖子

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM