数据库MySQL,WEB服务器2台集群部署
场景:
一张会员认证信息表,当有认证申请时,先判断之前有没有申请过
如果申请过,则update;如果没有,则insert
现在数据库偶尔会出现同一个会员的2条重复数据。
怎么避免这个问题?
解决方案1:在数据库中增加唯一性索引
问:还有没有其他更好的解决方案
------解决方案--------------------
为啥不用索引呢?也能增加查询效率不是?
偶尔出现重复的,猜测是并发的重复提交申请导致的,在这里考虑考虑。
------解决方案--------------------
在表中增加primary key或者unique index
写数据时用replace into代替insert into
这个语句会自动判断应该是update还是insert
------解决方案--------------------
唯一索引肯定是要加的,为了不在insert的时候出错 直接用:
insert into.... on duplicate key update ...
具体语法自己去查下,我一直这么用,感觉蛮好用的