2011-02-02 68 views
5

我有21M記錄的MySQL數據庫和我試圖做約1M記錄的更新,但是查詢失敗與ERROR 1206 (HY000): The total number of locks exceeds the lock table size.UPDATE查詢在MySQL上大表

是否有可能不獲取更新表鎖嗎?

我無權訪問像innodb_buffer_pool_size這樣的MySQL配置參數。有沒有不同的方式來實現相同?

感謝

編輯

  1. 我已經試過了在5000批次,它的工作原理了幾次,但我得到了同樣的錯誤
  2. 我試過LOCK TABLES鎖定整個表並仍然無法使用。
+0

http://rackerhacker.com/2010/02/16/mysql-the-total-number-of-locks-exceeds-the-lock-table-size-2/ – 2011-02-02 15:22:28

+0

只能像faisal說的那樣做大塊 – 2011-02-02 15:22:55

回答

3

我想你可以使用limit子句來批量更新。

1

嘗試在表級而不是行級鎖定。使用LOCK TABLES MyTable WRITE。這可能會解決問題。雖然沒有保證!不要忘記解鎖桌子!