在mysql中,NOT EXISTS函数的性能成本是否比UNION高很多?
我想用可能重叠的数据填充一个表。我在代码中这样做过几次。所以,第一次是在mysql中,NOT EXISTS函数的性能成本是否比UNION高很多?,mysql,performance,union,exists,Mysql,Performance,Union,Exists,我想用可能重叠的数据填充一个表。我在代码中这样做过几次。所以,第一次是 INSERT INTO A (SELECT * FROM B) INSERT INTO A SELECT * FROM C WHERE NOT EXISTS (SELECT * FROM A Where A.field = C.field) 第二次是 INSERT INTO A (SELECT * FROM B) INSERT INTO A SELECT * FROM C WHERE NOT EXISTS (SELEC
INSERT INTO A (SELECT * FROM B)
INSERT INTO A
SELECT * FROM C
WHERE NOT EXISTS (SELECT * FROM A Where A.field = C.field)
第二次是
INSERT INTO A (SELECT * FROM B)
INSERT INTO A
SELECT * FROM C
WHERE NOT EXISTS (SELECT * FROM A Where A.field = C.field)
重新插入总共进行了3次。我可以在4个子表上使用并集将代码更改为一次插入,但这需要大量的重新设计,所以我想知道我现在受到了多大的性能损失
谢谢 如果目标表中有合适的唯一键约束,您可能还需要查看
INSERT IGNORE…
只是另一个想法。。。但是,不知道性能差异,这可能取决于表结构、索引和数据。我只需要自己对不同的方法进行基准测试,然后选择最合适的方法。如果目标表中有合适的唯一键约束,您可能还需要查看
INSERT IGNORE…
只是另一个想法。。。但是,不知道性能差异,这可能取决于表结构、索引和数据。我会自己对不同的方法进行基准测试,然后选择最合适的方法。工会的成本可能更低。但和数据库一样,这要视情况而定 为什么? 因为你现在正在做的是:
数据量:如果与运行数据库的硬件相比,您的数据很少,那么这个讨论可能毫无意义。也就是说,优化不是瓶颈的部件没有意义。一个联合体的成本可能更低。但和数据库一样,这要视情况而定 为什么? 因为你现在正在做的是: