数据库插入两条一样数据解决方案

1,问题如下图

同时保存了2条一样的数据。
同时保存了两条一样的数据
2个线程, A去查是否有10001的用户时,返回没有,就去保存用户。
B在A保存之前也去查询, 发现没有此用户, 就又保存了一次。

2, 单机版解决方案

在save方法上加锁即可

3, 集群版解决方案

给数据库的字段设置唯一性

给user_id设置唯一性
 ALTER TABLE activity_wheel_address ADD unique(`user_id`); 
删除user_id唯一性
 ALTER TABLE activity_wheel_address DROP INDEX user_id;

参考: https://blog.csdn.net/lululove19870526/article/details/60592981/

你可能感兴趣的:(Java基础,mysql)