我有 2 个类似的表,其中包含大约 200.000 行。如果表 1 中没有类似数据,我想将表 2 中的数据添加到表 1。我进行了一个查询,显示了我可以复制的 ID。但是执行查询需要一天多的时间,我希望在 +- 2 小时内完成。
这是查询(where中的所有数据都是字符串):
SELECT id
FROM verwerkt2 v2
WHERE 0 = (SELECT Count(*)
FROM verwerkt
WHERE naam = v2.naam
AND postcode = v2.postcode
AND huisnummer = v2.huisnummer);
我从工具中获取数据。这就是数据未标准化的原因。
有没有更快的方法来做到这一点?
最佳答案
你可以试试
INSERT INTO verwerkt (Naam, Postcode, Huisnummer, ...)
SELECT Naam, Postcode, Huisnummer, ...
FROM verwerkt2 v2
WHERE NOT EXISTS
(
SELECT *
FROM verwerkt
WHERE Naam = v2.Naam
AND Postcode = v2.Postcode
AND Huisnummer = v2.Huisnummer
);
确保您拥有所有必要的索引。特别要确保您在 verwerkt
(Naam, Postcode, Huisnummer)
ALTER TABLE verwerkt ADD KEY (Naam, Postcode, Huisnummer);
关于mysql - 合并 2 个表太慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18202829/