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

參考博客傳送門:
https://blog.csdn.net/github_36326955/article/details/54970808

今天因爲要測試數據庫中的一些數據,需要頻繁的把千萬級的數據表在Myisam和InnoDB之間不停地轉換,一開始還可以通過

 ALTER TABLE `table_name` ENGINE = `Myisam`;
 ALTER TABLE `table_name` ENGINE = `InnoDB`;

這兩個命令轉換,可是後來在轉換中出現了這個錯誤
ERROR 1206 (HY000): The total number of locks exceeds the lock table size
在這裏插入圖片描述
後來查看資料瞭解到:
InnoDB表執行大批量數據的更新,插入,刪除操作時會出現這個問題,需要調整InnoDB全局的innodb_buffer_pool_size的值來解決這個問題,並且重啓mysql服務。

解決方法:
首先輸入

show variables like "%_buffer%";

然後查看innodb_buffer_pool_size參數多大,如果是 8388608則需要更改爲67108864
更改命令
`SET GLOBAL innodb_buffer_pool_size=67108864;

這樣就可以完成轉換啦~
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章