有一個大的更新:Innodb的,更新幾千條記錄導致鎖定超時
UPDATE myBigTable SET x=0;
這不能做,我得到SQL錯誤(1205),鎖等待超時超標。我試圖關閉自動提交,仍然沒有結果。如何更新呢?
編輯:我試圖禁用自動提交,仍然沒有喜悅
有一個大的更新:Innodb的,更新幾千條記錄導致鎖定超時
UPDATE myBigTable SET x=0;
這不能做,我得到SQL錯誤(1205),鎖等待超時超標。我試圖關閉自動提交,仍然沒有結果。如何更新呢?
編輯:我試圖禁用自動提交,仍然沒有喜悅
你可以試着增加這樣的鎖定時限:
mysql> set innodb_lock_wait_timeout=100
其中100是秒。
或者你可以嘗試要殺死這實際上是鎖定你的過程是怎樣的過程:
mysql> kill processId;
有一個大的更新:
你真的確定要更新所有你的表格記錄?你目前的行爲看起來不正確。您應該考慮使用A where
過濾條件並執行更新;像UPDATE myBigTable SET x=0 WHERE id = value;
如果你真的想更新整個表記錄,那麼考慮批量使用它,而不是一次性使用它。
你有沒有考慮過分塊?就像'UPDATE myBigTable SET x = 0 WHERE x!= 0 LIMIT 10000;'循環直到完成? – ceejayoz