拼团功能,开团并发问题,使用数据库行锁方案

Posted jiangxiaochang

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了拼团功能,开团并发问题,使用数据库行锁方案相关的知识,希望对你有一定的参考价值。

参考网址:https://www.sunzhongwei.com/using-laravel-sharedlock-and-lockforupdate-for-table-row-locks

个人觉得这种场景下并发数量比商品秒杀小得多,一个团的拼团入口由用户的朋友圈有关,可以使用数据库行锁控制。

sharedLock 与 lockForUpdate 相同的地方是,都能避免同一行数据被其他 transaction 进行 update。

不同的地方是:

  • sharedLock 不会阻止其他 transaction 读取同一行
  • lockForUpdate 会阻止其他 transaction 读取同一行 (需要特别注意的是,普通的非锁定读取读取依然可以读取到该行,只有 sharedLock 和 lockForUpdate 的读取会被阻止。)

 

以上是关于拼团功能,开团并发问题,使用数据库行锁方案的主要内容,如果未能解决你的问题,请参考以下文章

PHP应对并发,MySQL数据库防止数据不一致

(随记)php高并发

手把手教你玩转阿里云双11拼团活动

实现拼团业务逻辑

阿里云Hi拼团优惠活动全新升级,活动变化亮点总结

关于MySQL中的表锁和行锁