參考:https://blog.csdn.net/weixin_40683253/article/details/80762583
mysql在進行大批量的數據操作時,會報“The total number of locks exceeds the lock table size”,特別是執行create、update語句的時候,
在出現錯誤的那段查詢語句之前寫上這么一句話:
show variables like "%_buffer%";
SET GLOBAL innodb_buffer_pool_size=67108864;
問題就解決了。
啟動MySQL時就要分配並且總是存在的全局緩存。
目前有:
key_buffer_size(默認值:402653184,即384M)、
innodb_buffer_pool_size(默認值:134217728即:128M)、
innodb_additional_mem_pool_size(默認值:8388608即:8M)、
innodb_log_buffer_size(默認值:8388608即:8M)、
query_cache_size(默認值:33554432即:32M)等五個。總共:560M.
mysql出現size報錯時,一般是這幾個值得問題,而這些變量值都可以通過命令如:show variables like '變量名';查看到,並且通過命令如:SET GLOBAL '變量名'='修改后的數值';更改。