MySQL存在则更新方法一般有以下几种
- SELECT + UPDATE
- REPLACE INTO
- 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 的操作。
两者的效率都不怎么样,道理很简单,因为一个人干了两个人的活嘛。
本文对比分析了MySQL中存在则更新操作的三种方法:SELECT+UPDATE, REPLACEINTO, 和 INSERTINTO ON DUPLICATE KEY UPDATE。详细解释了它们的工作原理、区别以及在实际应用中的效率表现。
996

被折叠的 条评论
为什么被折叠?



