
有沒有辦法在mysql中執行低優先權更新?
我正在運行一個非常高負載的應用程序,其中可能很容易有數千個用戶嘗試同時更新相同的數據記錄。這主要是基於會話的統計訊息,如果存在與請求相關的等待時間,其中大部分資訊可以被忽略。我希望能夠檢查某些表/行是否已鎖定,如果是,則不向伺服器傳遞更新查詢。那可能嗎?
答案1
您使用什麼資料庫引擎? MyISAM 還是 InnoDB?如果是MyISAM,可以使用以下命令查看鎖:
SHOW FULL PROCESSLIST;
但是,我建議您採取不同的方法。只需使用 INSERT DELAYED 為每個資料點插入一個新行,即可避免出現單點爭用。然後在一天結束時,或者每當您需要資料時,您可以對所有內容進行批次處理。請注意,這僅適用於 MyISAM、MEMORY 和 ARCHIVE 引擎類型。
來源:dev.mysql.com/doc/refman/5.1/en/insert-delayed.html
我認為這個問題屬於 Stack Overflow。您可能會在那裡得到更好的回應。
——傑弗瑞‧李