MySQL存在则更新方法对比

来源:互联网 发布:苹果mac搜狗输入法 编辑:程序博客网 时间:2024/05/16 07:41

MySQL存在则更新方法一般有以下几种

  1. SELECT + UPDATE
  2. REPLACE INTO
  3. INSERT INTO … ON DUPLICATE KEY UPDATE

SELECT + UPDATE 是最传统的一个,要对数据库进行两次操作。
REPLACE INTO 和 INSERT INTO ON DUPLICATE KEY UPDATE都是一次操作,表面看起来功能差不多,REPLACE INTO 还优胜些,因为要短一些。
但是两者还是有点区别的:
REPLACE INTO 等于 DELETE + INSERT INTO,如果表的主键是一个自增ID,那问题就来了,REPLACE INTO 会导致主键的值越来越大,如果溢出,将会导致数据无法插入。
而INSERT INTO ON DUPLICATE KEY UPDATE的实质却是 if(EXISTS) UPDATE else INSERT INTO 的操作。
两者的效率都不怎么样,道理很简单,因为一个人干了两个人的活嘛。

原创粉丝点击