2010-03-17 95 views
2

我有一個用戶表的頻繁更新,它簡單地設置用戶的最後一次看到的時間,我想知道是否有一種簡單的方法推遲他們,並將它們分組成單個查詢後短超時(5分鐘左右)。這將會減少我的用戶數據庫上的查詢。推遲在MySQL中的頻繁更新

回答

2

如果你做了,你UPDATE LOW_PRIORITY table ...將確保當它沒有做其他任何事情,只會執行你的更新。除此之外,我不認爲MySQL中有很多選項。

此外,它是現在造成問題還是你只是優化一些不是問題?就個人而言,如果我要像這樣批量更新,我只需將所有ID插入memcached中,並使用cronjob每5分鐘更新一次。

+0

我很喜歡你的緩存方法,我會試試看。基本上我把我的數據保存在一個緩存中(在我的情況下是Pear Cache_Lite),然後我有一個定期的寫回服務。 – cdecker 2010-03-18 15:54:18

1

沃爾夫的建議應該做到這一點。還可以創建第二個沒有任何索引的表,並將所有數據插入到該表中。它甚至可以是內存表。然後你做一個週期性的INSERT INTO table1 SELECT * FROM TABLE2 ON DUPLICATE KEY UPDATE ...傳輸到主表。