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才生效。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 零经验选手,Compose 一天开发一款小游戏!
· 因为Apifox不支持离线,我果断选择了Apipost!
· 通过 API 将Deepseek响应流式内容输出到前端