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 的操作。
两者的效率都很一般。