基本上是所有朋友最近發帖的直播。Twitter家/ Facebook牆的數據庫結構?
在一個愚蠢的排序方法,我想我會通過構建一個查詢一樣開始:
SELECT * FROM tblposts WHERE userid=
friend_id_1 OR userid=
friend_id_2 ......
等
哪裏friend_id_%是朋友的用戶ID,從你的朋友名單。但是這樣做肯定是一種非常低效的方式,對吧?有沒有更快的方式在MySQL中做到這一點?也許一些聰明的數據庫架構?
(我知道FB使用Hadoob但我沒有足夠的經驗去那麼遠:()
謝謝!這很有道理。它會和Twitter這樣的大熱門網站有什麼不同嗎? – mathon12 2010-03-28 21:58:29
@ mathon12:一個大型網站肯定不會做到這一點。首先,一些用戶可能有1000個朋友,他們可能每個都發布了1000條消息,因此您需要一些分頁機制,以及排序,過濾等等。目前,此查詢可能會以不特定順序返回數百萬行。 – 2010-03-28 22:02:15
是的,我認爲可能是這種情況。對此進行一次'黑客攻擊'可能會將結果限制爲按時間排序的前50到100場比賽,因爲通常只會顯示最近的帖子。謝謝。 – mathon12 2010-03-28 22:08:35