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

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

/ 猿问

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

PHP
qq_Astral_0 2019-08-31 18:24:18

在大并发下,数据库在查询过程中,老查询到得状态是0,可是已经又在数据库把https://img3.mukewang.com/5d6a4a9300017cc909770651.jpg这个状态改成

查看完整描述

1 回答

?
一凡

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

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

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

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

添加回答

回复

举报

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