使用innoDB表和mysqli包装器在PHP中进行查询。
我们目前遇到了一个问题,即我们正在经历一次流量激增,每秒请求同一脚本1,500次。
情况是最先访问该脚本的X个用户赢得奖品。
奖品是“prizes”表上的一条记录,其中包含要求数量和分配数量的计数。
一旦使用的数量> = 分配的数量,我们就停止颁发奖品。
所发生的事情是,脚本的若干请求同时读取行,而其他脚本实例还没有更新该行,因此向它们显示仍有一定数量的奖品可供领取。这导致我们颁发的奖品超过了分配的数量。
有什么想法可以规避这种情况吗?