错误汇总2 mysql the total number of locks exceeds

场景:复制一张表到另一个数据库   这个表很大 有6千多万行
出现问题:如上截图
解决办法:

方法1 

修改 innodb_buffer_pool_size的值为3G:

SET GLOBAL innodb_buffer_pool_size=67108864;(3*1024*1024*1024,不要忘记;号)


原因:表数据量太大了 超过了 缓冲池的大小 
select concat(round(sum(DATA_LENGTH/1024/1024/1024),2),'G') as data  from TABLES where table_schema='XXX' and table_name='XXXXXX';#1938.86MB
查询得到数据表的大小是25.08G

拓展:mysql调优   查看innodb_buffer_pool_size的状态 值

缓冲池字节大小,单位kb,如果不设置,默认为128M

sql> show global variables like 'innodb_buffer_pool_size';

查看看到设置是128G 也没有超过缓存的大小

sql> show global status like 'Innodb_buffer_pool_pages_data';

sql> show global status like 'Innodb_page_size';

sql> use mysql;

sql> select @@innodb_buffer_pool_size;


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值