2012-08-06 37 views
0

我計劃通過數據緩存來優化我的Web應用程序的性能。它使用MySQL,所以我迄今發現的選項是這2:查詢緩存與存儲器存儲表

  • 使用MySQL查詢緩存功能
  • 做一個表使用內存存儲引擎,並保持它作爲查詢序列化陣列的全部結果;

我寧願第二個,因爲只有我需要緩存的表,並且表修改上的查詢緩存會使從該表派生的所有查詢無效。 雖然在我的內存表中,我只能刪除已修改(UPDATED)的行。當然,這需要更多的代碼,但我認爲整體性能會更好。

你有什麼建議,爲什麼?

+0

檢查內存緩存,MySQL查詢緩存將是無用的,如果你有太多更新。 mysql內存表將會在地獄中管理,它很難被同步,如果你想在內存表中使用磁盤同步,但多臺機器(或同一進程中的進程)對於大多數人來說都是一個麻煩 – Hawili 2012-08-06 12:07:15

+0

是的,我可以使用mysql-cluster ndb我也會檢查memcache,但將來如果我要將我的應用程序分發給更多的客戶端,那麼要求他們在他們的服務器上安裝memcache並不會很好,因爲我的應用程序如果沒有它,就不能工作。 。 對? – adrian7 2012-08-06 17:12:18

+2

哦,我忘記了,你可以直接使用觸發器從mysql更新內存表:),或者APC而不是memcache,通常它捆綁了php – Hawili 2012-08-06 20:33:56

回答

-1

使用內存存儲引擎創建一個表,並將查詢的完整結果保存爲序列化數組;

  • 1)你的意思是會話# 使用Redis的是一個開源(BSD許可),內存中的數據結構存儲,用作數據庫,高速緩存和消息代理
  • 2)你的意思是查詢緩存#

see this

希望它的幫助你做出快速的Web應用程序

+0

儘管這個鏈接可能回答這個問題,但最好包含在這裏回答並提供參考鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/評論/低質量帖/ 15910058) – 2017-04-23 08:16:46

+0

是兄弟,但它是大事情,如果看到它有很多的細節 – stren 2017-04-23 13:12:00