假設我有一個通用網站,允許某人在很短的時間內下載他們的feed
。用戶可以是subscribed
與許多不同的pages
,並且用戶的feed
必須從服務器返回給用戶,而在訂閱的所有頁面之間最近的是最近的posts
。最初,當用戶查詢的服務器爲feed
,算法如下:Feed算法+數據庫:太多的行或太慢的檢索
- 看所有的
pages
用戶subscribed
到 - 獲得
N
最近posts
從每個page
- 排序的所有的的
posts
- 返回
N
最近的帖子給用戶作爲他們的feed
事實證明,每次用戶嘗試刷新一個Feed時都很慢。因此,我將數據庫更改爲具有feedposts
的表格,該表格僅具有用戶的外鍵和該帖子的外鍵。每次頁面發佈新帖子時,都會爲其每個訂閱的關注者創建一個Feed帖子。這樣,當用戶需要他們的供稿時,它已經被創建,並且不需要在檢索時創建。
我這樣做的方式是創建太多的行,並且看起來不可擴展。例如,如果單個頁面發佈1個帖子,&擁有1,000,000個關注者,我們只在我們的feedpost表中創建了1,000,000個新行。
請幫忙! Facebook等公司如何處理這個問題?他們是否根據要求生成飼料?我的數據庫關係很糟糕嗎?
這是驚人的,謝謝。 – Chisx