簡體   English   中英

為所有用戶“緩存”相同的MySQL結果

[英]“Caching” identical MySQL results for all users

我希望開發一個LAMP應用程序,該應用程序將圍繞一個小表,大概少於100行,每行5個字段。 該表將需要快速訪問存儲在其中的數據,每個用戶最多可能需要每秒訪問一次(盡管這是“理想的”,實際上,這可能會略有下降)。 此表將進行許多更新,但是SELECT的更新將遠遠超過UPDATES。

可用的硬件功能不是很強大(它將在可能具有512mb RAM的VPS上啟動),並且需要可擴展-在啟動時可能只有10個並發用戶,但這可能會增加到數千個(並且所有人都希望擁有這些東西,也許是10,000,但是這個級別將提供更強大的硬件)。

因此,我想知道是否有人可以為我指明一個正確的起點-所有用戶檢索到的所有數據都是相同的,因此我試圖研究是否有必要在所有用戶之間共享此數據,而不是執行10,000個相同的內容,而是選擇一秒鍾。 ::

1)mysql_query_cache是​​否緩存這些結果並允許訪問數據,而無需為每個用戶重新選擇? 2)(對於這個問題的范圍,我深表歉意,即使是最簡短的回復,我也非常感謝!)我一直在研究APC緩存,因為我們已經將其用於操作碼緩存-是否有一種緩存數據的方法在APC緩存中,每秒僅執行一次MYSQL選擇以更新此緩存-然后僅為每個用戶訪問APC? 還是替代緩存?

如果所有這些都失敗了,我可能會考慮使用一個單獨的腳本來處理查詢並輸出數據,並以某種方式將這個腳本的數據傳遞給所有用戶。 這不是一個完整的思想,我不確定實現方式,但也許是AJAX的組合,用於從...“某處”中提取輸出的數據... :)

對於這些問題的廣度,我們再次道歉-非常感謝任何人的簡短提示。 再次感謝

如果您正在執行諸如AJAX聊天之類的工作,該工作會不斷輪詢服務器,則可能需要查看node.js來保持服務器和瀏覽器之間的開放連接。 這樣,您可以在發生更改時將更改推送給用戶,而無需每秒進行一次所有的冗余檢查。 這可以很好地擴展到成千上萬的用戶,並且是在服務器端用javascript編寫的,因此不太困難。

使用MySQL緩存的問題是,在對該表進行任何寫入操作時,整個表緩存都會失效。 如果要更精確地控制該行為,則最好使用諸如memcached或APC之類的緩存解決方案。 是的,APC將能夠緩存該信息。

要記住的另一件事是,您還需要知道何時使緩存無效 ,因此您沒有陳舊的數據。

您可以使用apc,xcache或memcache進行數據庫查詢緩存,也可以使用vanish或squid進行網關緩存...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM