mysql( The total number of locks exceeds the lock table size)

首先删除数据库的重复项

delete 
from goodinfo
where 
	(user_id,item_id) in(
		SELECT t.user_id,t.item_id from(
		SELECT
			user_id,item_id
		from
			goodinfo
		GROUP BY
			user_id,item_id
		HAVING
			COUNT(*)>1
		) t
	)

运行这段代码发现有
The total number of locks exceeds the lock table size的错误。
错误原因:是因为对表进行分组,所需要的缓冲内存过小。因为使用的是innob引擎。默认内存大小为8M。
解决办法:使用mysql的控制台

1.使用命令 show variables like “%_buffer%”;
可以查看innob_buffer_poor_size为8M
2.使用命令 67108864=64M。
SET GLOBAL innodb_buffer_pool_size=67108864;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值