MySQL多次更新-性能更好?

MySQL多次更新-性能更好?,mysql,Mysql,有两种方法可以执行MySql多重更新,如(前两个答案) 但是,如果只有更新而没有插入,那么哪种方法(性能方面)更好呢 INSERT ... ON DUPLICATE KEY UPDATE 或 当一个人应该测量时,使用情况 如果在这两个选项之间进行选择,第一个选项将尝试插入行,并且在唯一约束冲突时更新数据。第二种方法需要为每个要更新的字段提供一个布尔检查列表。列表的长度是要更新的行数。这对于许多行来说是一个糟糕的选择 如果parralel进程删除了您尝试更新的几行,则带有INSERT的选项可能很

有两种方法可以执行MySql多重更新,如(前两个答案)

但是,如果只有更新而没有插入,那么哪种方法(性能方面)更好呢

INSERT ... ON DUPLICATE KEY UPDATE
或 当一个人应该测量时,使用
情况

如果在这两个选项之间进行选择,第一个选项将尝试插入行,并且在唯一约束冲突时更新数据。第二种方法需要为每个要更新的字段提供一个布尔检查列表。列表的长度是要更新的行数。这对于许多行来说是一个糟糕的选择

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

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


UPD:我在链接的问题中添加了一个带有UNION ALL的答案。

您想使用UPDATE语句。是的,我想知道使用CASE或INSERT。。。关于重复密钥更新?好主意,但是,当我们加入一个临时表时,它不使用索引,您认为这可能是一个问题吗?内部连接的顺序由MySQL的优化器选择。当您有一个子查询连接到一个实表时(尤其是在主键上),连接将始终从子查询开始,即该查询相当有效。@kaushik,请看相应的SELECT查询的解释。