問題聲明:我正在開發一個應用程序,其中用戶可以關注其他用戶(如Twitter或其他電子商務網站)並在牆上獲得更新。與商家和用戶的關係。用戶可以跟隨任何商家。用戶自己可以是商家,所以實際上它就像一個用戶跟隨其他用戶(許多許多實際情況)。使用PHP mysql水平擴展數據庫
問題:去做最簡單的方法是讓這將有 ID(自動遞增)結合表| follower_user_id | followed_user_id。但是我不確定數據庫的垂直增長情況,它會如何擴展。如果用戶跟隨100人,那麼對於單個用戶將有100個條目。在這種情況下,如果我想獲得任何用戶的關注者,則需要更長的時間查詢執行的時間。
研究:我想學習Twitter和其他網站和數據庫設計,但它們使用不同的數據庫,如基於圖形的NoSQL等,以解決他們的problems.In我們的情況下,其Mysql.I還去有關使用的緩存機制,但我會想知道,如果有任何方法可以水平存儲值,即每個用戶都有一個單行的跟隨者(逗號分隔將是我試過的單調乏味)。
我可以爲此功能提供單獨的數據庫,如基於Nosql的數據庫(mongo等)。它會對不同情況下的執行力產生什麼影響?
如果我採用easiset方式進行操作的方法是正確的,那麼如何提高5-10k用戶的性能(現在查看一個小型基數)?基本mysql查詢是否工作正常?
請幫助我輸入相同。
這與橫向縮放無關;水平縮放是關於使用多個mysql服務器進行負載平衡 – 2013-04-29 09:56:26
您是否已經完成了任何測試以查看數據庫如何響應很多行?如果你使用索引,那麼即使有數百萬行,你仍然可以得到快速響應。使用模擬數據和查詢進行測試是我處理這個問題的方式。 – gunnx 2013-04-29 09:57:29
如果你在'follower_user_id'和'followed_user_id'上索引,查詢應該沒問題。 MySQL可以處理數百萬和數百萬行。 – MatthewMcGovern 2013-04-29 09:58:10