需要更新表格。但是,更改的数据量(比较我们获得的新数据和数据库中的数据)是未知的。
我可以想到两种方法来实现它。
我猜他们的性能边界。如果受影响的行是,比方说小于1,000,那么方法2可能更好。
我的问题是:
如果需要,假设数据库是MySQL。
答案 0 :(得分:0)
如果要替换整个表(可能使用大部分相同的数据),以这种方式执行它是相当直接的,而不用担心采用哪种方法:
CREATE TABLE new LIKE real;
Load the new data entirely into `new`
RENAME TABLE real TO old, new TO real; -- atomic and instantaneous (no downtime)
DROP TABLE old;
如果只有部分行可用,请将它们加载到临时表中,然后执行多表UPDATE
将任何新值传输到实际表中。
如果您的新数据可能包含新行,那么您需要另一个步骤来查找新行,并INSERT ... SELECT LEFT JOIN ...
将它们放入真实表中。
如果您需要进一步讨论,请提供更多详细信息。