ERROR 1206 (HY000): The total number of locks exceeds the lock table size

longqidong發表於2014-08-13
今天開發反映說開發環境一臺mysql操作報錯:
ERROR 1206 (HY000): The total number of locks exceeds the lock table size
是在做一個update的時候報錯的,我要來語句,換成select檢視了一下資料量,600多W。
檢視 max_write_lock_count 的值,是 8446744073709551615,肯定夠用了。
再檢視 innodb_buffer_pool_size,是預設的 8M,這個值對於innodb的絕大部分應用都是不夠用的。
加大到合適的值,我這裡是加大到了2G,對於線上的業務,都是使用innodb表,這個值設定為實體記憶體的60-70%,
重啟 mysql,再次執行sql,沒有問題。

另外的一個方案就是,就是將一條語句執行更改為分頁執行,每次執行一部分。不只是對於update,對於delete 同樣有效。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22418990/viewspace-1250444/,如需轉載,請註明出處,否則將追究法律責任。

相關文章