MySQL insert on duplicate key update 死锁
MySQL insert on duplicate key update不存在就插入,存在就更新,在实际业务场景中,经常会有一个这样的要求,插入某条记录,如果已经存在了则更新日期、某些列上的信息等,我们肯定会想到INSERT … ON DUPLICATE KEY UPDATE语句,一条语句就搞定了查询是否存在、插入或者更新这几个步骤,但是这条sql语句在innodb存储引擎上有陷阱,极有可能导致death lock死锁,也有可能导致主从模式下的replication产生数据不一致。