我有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
);
确保您具有所有必要的索引。特别要确保在
(Naam, Postcode, Huisnummer)
中具有覆盖索引verwerkt
ALTER TABLE verwerkt ADD KEY (Naam, Postcode, Huisnummer);
关于mysql - 合并2个表太慢,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/18202829/