2012-02-26 41 views
1

最近,我正在努力爲網絡遊戲創建大廳。有超過1000名在線用戶在玩遊戲。因此,我應該讓遊說團隊與這個龐大的網絡兼容。 起初,我曾嘗試使用MySQL數據庫來存儲大廳的數據並每隔5秒取一次。這爆炸了我的服務器,儘管公共用戶無法訪問它。挑戰在線遊戲創建大廳數據庫決策

然後我想出了在文本文件中存儲數據。由於工作的複雜性,這也是一場災難。

我期待的另一個選擇是SQLite。

您是否推薦此產品,或者您有更好的建議來創建網絡遊戲大廳。

項目已使用PHP編寫。

+2

我不知道遊戲大廳是什麼,或者它在做什麼,但是MySQL應該能夠處理這樣的網站的數據存儲,如果管理得當並且與正確的技術配對。你怎麼知道MySQL是罪魁禍首?您是否試圖「解析」您的查詢來優化? 「每5秒存儲和讀取數據」的方法可能會受到許多不同問題的影響,包括您的代碼組織,您正在存儲/讀取的數據量,服務器配置等。 – 2012-02-26 07:24:24

+0

謝謝@JaredFarrish,我試過了我最擅長優化我的代碼,但需要很多連接來刷新大廳。你認爲MySQL能夠傳輸這麼龐大的數據嗎? – 2012-02-26 07:34:54

+0

你試過類似Prevayler的東西嗎? – Victor 2012-02-26 07:35:29

回答

2

1000個用戶每5秒鐘執行一次讀取就是200次查詢/秒,這對於mysql來說並不是很重要 - 當然,這取決於您正在運行它的硬件。 找出你的瓶頸真的是 - 大部分時間真的花在數據庫連接?也許你可以通過Web服務器配置加快速度。

緩存對於此用例似乎不可行。但是某種內存數據庫呢? (如果你期望數據適合內存)

分片數據,使用主/從複製 - 即。向它扔更多的硬件;如果您的數據模型足夠簡單,請查看nosql。