相关疑难解决方法(0)

“INSERT ... ON DUPLICATE KEY UPDATE”的性能与“UPDATE”的比较

99% 的情况下,单个就足够了,但不到 0.01% 的情况下,我需要在同一键上UPDATE跟进。INSERT这可以写成一个单一的INSERT ... ON DUPLICATE KEY UPDATE,但就性能而言,我应该吗?

问题基本上是INSERT ... ON DUPLICATE KEY UPDATEs 是否预计比UPDATEMySQL 中的 s 慢。

一些代码来演示:

代码使用UPDATE

UPDATE foo SET seq = @new_seq WHERE id = X AND seq = @prev_seq;

IF rows_changed = 0 THEN
    INSERT INTO foo (id, seq) VALUES (X, @new_seq)
    IF <duplicate key error> THEN
        -- handle collusion
    END IF
END IF
Run Code Online (Sandbox Code Playgroud)

代码使用INSERT ... ON DUPLICATE KEY UPDATE

INSERT INTO …
Run Code Online (Sandbox Code Playgroud)

mysql

3
推荐指数
1
解决办法
3921
查看次数

标签 统计

mysql ×1