避免MySQL 中的“嘗試獲取鎖定時發現死鎖”
問題:
開發人員遇到間歇性的「嘗試取得鎖定時發現死鎖;在追蹤線上使用者活動的InnoDB 表中運行INSERT 時,嘗試重新啟動交易'錯誤。 >
首次訪問:INSERT INTO onlineusers (ip 、日期時間、用戶ID、頁面、區域、類型)值(ip、now()、用戶ID、'/thispage'、 'thisarea', 3)頁面刷新: UPDATE onlineusers SET ip = ip, datetime = now(), userid = userid, page = '/thispage', area = 'thisarea ', type = 3 WHERE id = 888
每15 分鐘執行一次Cron作業:DELETE FROM onlineusers WHERE datetime查詢中的鍵順序:
修改DELETE 語句以包含檢索主鍵值的子查詢(在本例中為id)依升序排列,例如this:
考慮在客戶端程式碼中為此特定實現重試機制錯誤,允許它自動重試有限次數次。
以上是如何防止 MySQL 線上用戶追蹤系統中出現「嘗試獲取鎖定時發現死鎖」錯誤?的詳細內容。更多資訊請關注PHP中文網其他相關文章!