Mysql he total number of locks exceeds the lock table size

 Mysql写了一个存储过程,每隔30分钟字段将2个日志表的数据汇总插入到另一个表。其中用到Mysql的(REPLACE INTO  插入的表  SELECT 数据源 ), 执行时因数据量过大,导致发生以下错误:

 

 

解决方式:

1.执行以下命令:

  show variables like "%_buffer%";

  显示结果:

  

 

 

 2. 找到上图中的:innodb_buffer_pool_size=8388608 ,默认8M,需要将其设置为1G=1*1024*1024*1024。

  输入如下命令:

SET GLOBAL innodb_buffer_pool_size=1073741824;

设置后返回结果:

设置要根据自己的实际情况来设置,如果设置的值不在合理的范围内,并不是设置越大越好,可能设置的数值太大体现不出优化效果反而造成系统的swap空间被占用,导致操作系统变慢,降低sql查询性能。

3. MySQL5.7及以后版本,改参数时动态的,修改后,无需重启MySQL,但是低版本,静态的,修改后,需要重启MySQL才生效。

 

posted on   Msea  阅读(117)  评论(0编辑  收藏  举报

编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端

导航

< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5
点击右上角即可分享
微信分享提示