首先删除数据库的重复项
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;