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;

这样就可以完成转换啦~
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值