2011-08-05 201 views
1

我想創建一個使用jQuery(JS)和PHP的世界應用程序。我最初嘗試通過使用MySQL數據庫來做到這一點,但這種方式效果並不好 - 服務器因數據庫查詢過載而崩潰。高效地存儲數據

這次我想將數據存儲在文本文件中......也許使用JSON來解析它?我將如何做到這一點?這三個主要的事情我想是:

  • 名稱
  • x位置
  • y位置

x和y的位置從JS給出。因此,爲了:

  1. 用戶加載頁面,並挑選用戶名
  2. 用戶移動字符,jQuery的獲取
  3. 的用戶名,x和y位置實時發送到PHP頁面的x和y位置使用jQuery的$.post()
  4. PHP頁面必須找到某種方式來高效地存儲它,而不會崩潰數據庫。
  5. PHP頁面將所有在線用戶的姓名和x和y座標發送回jQuery
  6. jQuery移動字符;每個人都看到動畫。
+10

所以,你設法使用你的數據崩潰MySQL服務器,並且你認爲使用一個文本文件反而會成爲解決方案? –

+0

是否可以選擇緩衝數據庫寫入,以免數據庫難以達到? –

+0

@Laurent我只是想過這個。我稍微改變了我的問題。 – Tad

回答

0

文本文件不是地球上表現最好的東西。使用像Redis(它有一個PHP client)的鍵值存儲來存儲它們。它應該能夠比MySQL服務器拍出更多的節拍。

0

您可以將數據以CSV(逗號分隔值)格式存儲在文本文件中。

例如,考慮您的要求。

1,翹,23,35 2,鮑勃,44,63 3,家族,435322

這個文本文件可以被存儲和讀任何時間,並使用explode功能分隔值。

4

如果您想要提高性能,則無法將數據存儲在文件而不是MySQL數據庫中。僅僅因爲MySQL將數據存儲在文件中,而是使用一些技術來提高緩存和使用索引等性能。

在服務器上保存和檢索數據的最快方法是使用RAM作爲存儲。 Redis就是這樣做的。它將所有數據存儲在RAM中,並可將其備份到硬盤驅動器以防數據丟失。

但我不認爲這裏的主要問題是MySQL本身。可能你以不恰當的方式使用它。但我不能說完全,因爲我不知道你的用戶產生了多少讀寫請求,你的表的結構是什麼等