为了账号安全,请及时绑定邮箱和手机立即绑定

在大并发下,数据库在查询过程中,老查询到得状态是0,可是已经又在数据库把这个状态改成

在大并发下,数据库在查询过程中,老查询到得状态是0,可是已经又在数据库把这个状态改成

PHP
慕斯7822642 2019-08-31 18:24:18
在大并发下,数据库在查询过程中,老查询到得状态是0,可是已经又在数据库把这个状态改成
查看完整描述

3 回答

?
一凡

TA贡献43条经验 获得超8个赞

你查询的时候 where status=0 拿出来的数据肯定是状态是0

虽然你后面做了 update * id=row[id],那也只是改了这一条数据,where status=0 的结果还有其他的数据呀。

你要限定 where id=${id} 看看是不是状态变了。

查看完整回答
反对 回复 2019-09-05
  • 慕斯7822642
    慕斯7822642
    因为是这样的数据库有个表是100w数据默认都是状态0的,在并发中..请求一个接口数据,处理数据库中这个表状态为0的数据,一条条处理,在把这个状态改成1就是已经完成状态
  • 一凡
    一凡
    那你这里的并发处理很可能会重复处理同一条数据呀。前面请求进来最好就带着ID,明确改那一条数据。
  • 慕斯7822642
    慕斯7822642 回复 一凡
    因为他这个接口是获取数据的,没办法带id,有别的办法吗
点击展开后面4
  • 3 回答
  • 1 关注
  • 750 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信