-1

由于 Mysql 不提供任何批量更新查询,但我们使用 ON DUPLICATE KEY UPDATE 的功能。当我们批量更新时使用以下查询是否很好,如果不是,那么使用以下查询的性能问题是什么?有没有其他方法可以在 MySQL 中批量更新

INSERT into fruits(id, value) VALUES
         (1, 'apple'), (2, 'orange'), (3, 'peach'),
         (4, 'apple'), (5, 'orange'), (6, 'peach'),
         (7, 'apple'), (8, 'orange'), (9, 'peach'), (10, 'apple')
   ON DUPLICATE KEY UPDATE value = VALUES(value);
4

1 回答 1

1

聪明的把戏。让我们知道它是否比 10UPDATE条语句更快。我怀疑是——到服务器的往返次数减少了 9 次;对解析器的调用减少了 9 次;等等

REPLACE,但这很可能效率较低,因为它是

DELETE all rows that match any UNIQUE index; and
INSERT the row(s) given.

IODKU 是有效的

if row exists (based on any UNIQUE key)
    then do "update"
    else do "insert"

检查行是否存在的努力将必要的块拉入缓存,从而为更新或插入准备好东西。

于 2018-03-29T01:31:59.900 回答