关于多线程根据条件写入数据库问题,条件判断无用

Chanwenmo 2016-06-20 03:53:43
比如一张表只允许添加3条数据,我是先查询有多少条,然后在插入,可是 出现了 3条以上的数据。这样该怎样解决呢。
...全文
186 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
无敌小二傻 2016-06-21
  • 打赏
  • 举报
回复
不要先去查,再去插入,这样肯定会有问题的,如果是分布式集群,建议使用redis或memcached进行分布式锁
大雨将至 2016-06-20
  • 打赏
  • 举报
回复
你只需要在查询和增加减少变量值的时候synchronized,做数据库操作在synchronized外面做,对性能基本没影响
Chanwenmo 2016-06-20
  • 打赏
  • 举报
回复
用synchronized ,会不会影响性能效率啊
大雨将至 2016-06-20
  • 打赏
  • 举报
回复
synchronized一个变量,插入数据库前先查询,如果已经达到上限则失败,否则+1并插入记录,如果插入失败再减1 如果是分布式环境,可以用redis计数解决 注意靠数据库事务是不合适的,需要把隔离级别提到很高,非常影响效率

25,985

社区成员

发帖
与我相关
我的任务
社区描述
高性能WEB开发
社区管理员
  • 高性能WEB开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧