gpt4 book ai didi

mysql - MySQL 锁总数超过锁表大小

转载 作者:搜寻专家 更新时间:2023-10-30 20:17:43 26 4
gpt4 key购买 nike

我有一个定义如下的表: enter image description here其中 ProviderId 是主键,StateID 是来自另一个表的外键。它在我的笔记本电脑上运行,因此,它是一个本地数据库。在我的表中,我有大约 900 万个条目。我知道一个事实,表中有重复的条目,但只有当我们将它们与一些字段进行比较时,它们才是重复的。为了删除重复的条目,我运行了下面的查询:

SET SQL_SAFE_UPDATES=0;
DELETE p1.*
FROM providers AS p1
JOIN (SELECT ProviderName AS PName, Address AS PAddr, StateID, Zip, MIN(ProviderId) AS PId
FROM providers
GROUP BY PName, PAddr, StateID, Zip
HAVING COUNT(*) > 1) AS p2
ON p1.ProviderName = p2.PName
AND p1.Address = p2.PAddr
AND p1.StateID = p2.StateID
AND p1.Zip = p2.Zip
AND p1.ProviderId > p2.PId;

关键是,它运行了大约 4 个半小时,它给我显示了标题上写的错误信息。你也可以看到它: enter image description here我怎样才能使我的查询更快,并克服我收到的错误消息?

最佳答案

我不确定我是否达到了你的目标,

你最好提供 sqlfiddle

但你可以试试:

SET SQL_SAFE_UPDATES=0;
DELETE p1
FROM providers AS p1
WHERE ProviderId NOT IN (
SELECT
MIN(ProviderId)
FROM providers
GROUP BY PName, PAddr, StateID, Zip
)

关于mysql - MySQL 锁总数超过锁表大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28749146/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com