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;

你可能感兴趣的:(mysql,mysql)