SQL百万计数据处理缓存过小处理-The total number of locks exceeds the lock table size

当尝试处理百万级SQL数据时,可能会遇到'Thetotalnumberoflocksexceedsthelocktablesize'的错误。这通常是由于缓存不足导致的。解决方法是在MySQL命令行中增加InnoDB缓冲池大小,例如通过设置`SET GLOBAL innodb_buffer_pool_size=2147483648;`将缓冲池调整到2GB。调整后,再执行SQL操作即可避免此类错误。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


前言

SQL百万计数据处理缓存过小处理-The total number of locks exceeds the lock table size报错处理方式的相关笔记


1. 运行出错

当我们直接对百万行的数据集进行复制数据和表结构操作时,会报以下错误:
报错信息为:

The total number of locks exceeds the lock table size

2. 处理方法

出现上述错误的原因是因为用于sql操作缓存提供过少,需要更改缓存大小。下面是具体操作:

从mysql command line client进入,点击后直接输入密码,一般默认密码为123456,输入后再输入命令:

show variables like “%_buffer%”;

会显示如下界面,找到如图示箭头所指的这一项,可以看到值为8M,这个也是缓存池的默认值。

接下来我们使用语句
SET GLOBAL innodb_buffer_pool_size=2147483648;
将缓冲池大小改为2GB(2*1024*1024*1024)。设置完成后退出即可。再次运行SQL将不会再报此类错误。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Sky-JT

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值