MySQL多次更新 - 更好的性能?

时间:2013-09-26 15:24:32

标签: mysql

有两种方法可以执行MySql多次更新,如Multiple Updates in MySQL所述(前两个答案)

但是,如果只有更新而不是插入,这是更好的方法(表现明智)。

INSERT ... ON DUPLICATE KEY UPDATE

OR 使用CASE WHEN

1 个答案:

答案 0 :(得分:1)

应该衡量一下。

如果您在两个选项之间进行选择,则第一个选项是尝试插入行,并且在唯一约束违规时会更新数据。第二种方法需要为要更新的每个字段提供布尔检查列表。列表的长度是您要更新的行数。那对很多行来说都是不错的选择。

如果parralel进程删除了您尝试更新的多个行,则INSERT选项可能会很危险。在这种情况下,它将尝试执行其主要任务:插入行。

但还有另一种选择:将UNION ALL分隔的一系列行与要更新的表连接起来。这是我通常倾向于使用的选项。

UPD:我在UNION ALL中为链接的问题添加了答案。