2009-10-25 120 views
0

我正在開發一個基於網格的尋寶遊戲,比如PHP,mySQL和我試圖在兩個緩存選項之間做出決定。mySQL緩存 - 內存或硬盤?

遊戲說明 用戶有1000個單元網格,點擊某些單元格將沒有任何效果,其他人會指導您「找到該項目!頁面:)...許多項目都可以通過任何觸摸單元(一組)訪問。

過程

當用戶點擊在細胞我有一個JS腳本,可以檢測被點擊哪一個小區...它然後:

選項1: 比較它從內存緩存的mysql響應中以逗號分隔的'item'單元列表。如果被點擊的單元格是其中一個'item'單元格,它會將用戶導向到像/ grid/cellnumber.php這樣的地址,那麼如果該單元格號碼是一個組的一部分(在遊戲描述中已經解釋過),它會重定向用戶到包含「此項目已找到!」的組內的最低單元格號。頁。

選項2: 比較它含有基團和細胞數目例如項[組沒有,細胞沒有],然後如果小區點擊一個小區中沒有它指示用戶相匹配的多維數組到... /格/組no.php

選項2顯然更整潔,但我認爲,這需要大約雙倍的內存其緩存的時候,因爲它需要存儲的單元格,組號

什麼都做其他人認爲?

+4

記憶每次都以速度獲勝。 – 2009-10-25 15:21:01

+0

這與緩存有什麼關係?沒有提到「硬盤」如何解決問題。 – Pointy 2009-10-25 16:05:13

+0

當然,「這個項目已找到」頁面作爲一個PHP文件緩存到硬盤,但在兩個選項中使用......它真的是更多的內存緩存(選項2 - 組和單元格)或使用更多硬盤空間(選項一與單元重定向頁面)。 – Mark 2009-10-25 17:47:40

回答

1

訪問磁盤以毫秒爲單位進行測量,訪問內存以納秒爲單位進行測量。內存要快得多。

即使您在每個單元中有1 MB的數據,也可以使用1000個單元格,它仍然適合新PC的內存。