大型網路遊戲的資料庫是怎麼設計的呢?

時間 2021-06-01 02:37:02

1樓:樹懶學堂

看完這個問題,樹懶君深思熟慮了一番,覺得大致有以下兩種思路:將所有資料先寫入乙個資料庫伺服器。

利用SQL的複製功能,同步幾個鏡象資料庫伺服器。

當執行查詢的時候,程式自動分流在不同鏡象資料庫裡查詢資料。

但是,這個方案有乙個非常明顯的問題:原始資料庫的寫運算元據量衝擊過大時,原始資料庫萬一撐不住,系統會面臨癱瘓 :( 。

採用分布式資料庫系統,大致思路是這樣的:

將資料表進行分割槽,分割槽後的資料分別存放在不同的資料庫伺服器上,通過分割槽檢視關聯。

寫資料時並非對每乙個資料庫進行寫操作,而是將I/O也分流到了多台資料庫伺服器上。

分布式的好處在於乙個伺服器只承受部分使用者的處理,主伺服器出故障時,可以利用日誌傳送功能立即啟用備用伺服器來代替損壞的伺服器進行工作,所以不會受影響。

比如說,現在咱們假設乙個場景,目前有10萬使用者。將玩家分配由不同的伺服器來支撐,你有10臺伺服器的話,一台伺服器只需要應付1萬玩家。

通過在每台伺服器上建立其他伺服器的資料庫做為備份(可能事務傳送),就可以實現每台伺服器上均有其他9臺資料庫的資料,而且一台伺服器上的資料被9臺伺服器備份。

通過在每台伺服器建立分割槽檢視來合併所有資料庫中的表,就可以實現在任意一台伺服器上可以檢索出資料。

2樓:劉鑫

高水平的沒見識過,普通水平的做過,也沒有很神秘,為了保證實時性,其實遊戲總是盡量少讀寫資料庫的。所以這一層並沒有特別獨特的東西。

新浪微博資料庫是如何設計的?

leef quora 上有相同的 Activity Streams What are the scaling issues to keep in mind while developing a social network feed?集中在Push 和 Pull 的選擇。高Follow和高subsc...

遊戲中,對於遊戲功能的資料庫(主要是建表)設計是應該由策劃來設計還是程式設計師設計比較合理?

資料庫有專門的設計人員DBA 完整的應該是策劃來提供資料字段內容和相互之間的關係,以及描述後續可能的擴充套件情況 而DBA和遊戲開發者應該相互溝通,DBA設計的資料庫能夠讓遊戲開發者達到策劃的需求 當然,策劃們不一定是專業搞技術的,也許有不是很合理需求技術上達不到 並且能讓遊戲開發者方便 高效的使用...

關係型資料庫,資料庫表設計,兩個表的連線關係是多對多,連線表的設計除了傳統的設計方案外還有其他設計方案麼?或者說有幾種可能的設計方案。

王璐 你所說的符合正規化的設計肯定是設計的第一步,之後的設計要看業務具體怎麼用這些資料。馬上就能想到的幾點是 未完成的訂單備受關注 已完成的訂單不會有修改。要解決題目中的查詢壓力,簡單的方案是 把未完成單 三月內單 歷史訂單分開儲存。當然對於前端的處理和快取也能有效減少查詢和查詢壓力。 LS的已經回...