MySQL并发插入

解决这类并发问题,可以有以下途径:

找到业务的唯一约束,使用mysql的unique_key解决
根据业务,如果不能找到唯一约束,那就用锁解决,可以选择java的锁,mysql的锁,或者redis实现

对某个字段做唯一性约束(首先确保这个字段是唯一的)
ALTER TABLE ADD unique(字段名);

mysql在存在主键冲突或者唯一键冲突的情况下,根据插入策略不同,一般有以下三种避免方法。
1、insert ignore
ignore 会忽略错误信息,不报错。但是不推荐使用,因为 给 not null 插入 null 的这种报错也会被忽略。
2、replace into
3、insert on duplicate key update

注意,除非表有一个PRIMARY KEY或UNIQUE索引,否则,使用以上三个语句没有意义,与使用单纯的INSERT INTO相同。

原文地址:https://www.cnblogs.com/aworkstory/p/14098444.html