我計劃通過數據緩存來優化我的Web應用程序的性能。它使用MySQL,所以我迄今發現的選項是這2:查詢緩存與存儲器存儲表
- 使用MySQL查詢緩存功能
- 做一個表使用內存存儲引擎,並保持它作爲查詢序列化陣列的全部結果;
我寧願第二個,因爲只有我需要緩存的表,並且表修改上的查詢緩存會使從該表派生的所有查詢無效。 雖然在我的內存表中,我只能刪除已修改(UPDATED)的行。當然,這需要更多的代碼,但我認爲整體性能會更好。
你有什麼建議,爲什麼?
我計劃通過數據緩存來優化我的Web應用程序的性能。它使用MySQL,所以我迄今發現的選項是這2:查詢緩存與存儲器存儲表
我寧願第二個,因爲只有我需要緩存的表,並且表修改上的查詢緩存會使從該表派生的所有查詢無效。 雖然在我的內存表中,我只能刪除已修改(UPDATED)的行。當然,這需要更多的代碼,但我認爲整體性能會更好。
你有什麼建議,爲什麼?
檢查內存緩存,MySQL查詢緩存將是無用的,如果你有太多更新。 mysql內存表將會在地獄中管理,它很難被同步,如果你想在內存表中使用磁盤同步,但多臺機器(或同一進程中的進程)對於大多數人來說都是一個麻煩 – Hawili 2012-08-06 12:07:15
是的,我可以使用mysql-cluster ndb我也會檢查memcache,但將來如果我要將我的應用程序分發給更多的客戶端,那麼要求他們在他們的服務器上安裝memcache並不會很好,因爲我的應用程序如果沒有它,就不能工作。 。 對? – adrian7 2012-08-06 17:12:18
哦,我忘記了,你可以直接使用觸發器從mysql更新內存表:),或者APC而不是memcache,通常它捆綁了php – Hawili 2012-08-06 20:33:56