加入收藏 | 设为首页 | 会员中心 | 我要投稿 核心网 (https://www.hxwgxz.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程 > 正文

我可以始终使用INSERT…ON DUPLICATE UPDATE进行简单的更新/插入

发布时间:2021-01-24 17:11:53 所属栏目:编程 来源:网络整理
导读:(MYSQL)是否存在明显的性能差异,或其他原因不使用INSERT ON DUPLICATE UPDATE sql通过PK /插入新内容进行更新?最佳答案不,没有. INSERT ON DUPLICATE KEY UPDATE将定位记录并更新它,就像简单的UPDATE一样. 实际上,这只是一个UPDATE,如果UPDATE失败,则后面是

(MYSQL)是否存在明显的性能差异,或其他原因不使用INSERT … ON DUPLICATE UPDATE sql通过PK /插入新内容进行更新? 最佳答案 不,没有.

INSERT ON DUPLICATE KEY UPDATE将定位记录并更新它,就像简单的UPDATE一样.

实际上,这只是一个UPDATE,如果UPDATE失败,则后面是INSERT.

INSERT ON DUPLICATE KEY UPDATE可以是分组更新的更快替代方法(当您的源表的每个键包含多个记录,并且希望每个记录增加一次目标表时).

如果每个键的值很少,则此查询:

INSERT
INTO    t_target
SELECT  target,cnt
FROM    t_sparse d
ON DUPLICATE KEY UPDATE
        t_target.cnt = t_target.cnt + d.cnt

将比这更有效:

INSERT
INTO    t_target
SELECT  target,cnt
FROM    (
        SELECT  target,SUM(cnt) AS cnt
        FROM    t_sparse di
        GROUP BY
                target
        ) d
ON DUPLICATE KEY UPDATE
        t_target.cnt = t_target.cnt + d.cnt

有关更多详细信息,请参见我的博客中的这篇文章:

> Efficient INSERT ON DUPLICATE KEY UPDATE

(编辑:核心网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读