gpt4 book ai didi

mysql - 部分更新表时 SELECT 和 UPDATE 的性能比较

转载 作者:行者123 更新时间:2023-11-30 22:13:28 28 4
gpt4 key购买 nike

有一个表需要更新。但是,更改的数据量(比较我们获得的新数据和数据库中的数据)是未知的。

我可以想到两种实现方法。

  1. 选择所有数据并在网络服务器中进行比较。然后只更新那些改变了。
  2. 只需更新所有数据。

我猜他们有一个性能边界。如果受影响的行少于 1,000,那么也许方法 2 更好。

我的问题是:

  1. 对此有通用标准吗?
  2. 一般select可以和update操作比较吗?

假设数据库是 MySQL,如果需要的话。

最佳答案

如果您要替换整个表(可能使用大部分相同的数据),这样做非常简单,无需担心采用哪种方法:

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 ... 放入真实表中。

如果您需要进一步讨论,请提供更多详细信息。

关于mysql - 部分更新表时 SELECT 和 UPDATE 的性能比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39264774/

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