我知道以前有人问过这个问题,但我仍然很困惑,如果可能的话,我想在开始编程之前避免任何问题。
我计划在任何给定时间建立一个至少有 100 个活跃用户的内部网站。用户将发布一个项目(以 0 作为其值插入到 db 中),该项目将通过 php 站点(db 查询)显示。然后,用户可以选择按下按钮并将该项目锁定为他们的(将该项目的值分配为他们的 id)
如何确保 2 个或更多用户不会同时检索同一个项目。我知道在像 c++ 这样的编程中,我只会使用普通的 ol 互斥锁。它们是 mysql 中的等价物,它只会锁定一个这样的项目条目吗?我已经看到对 LOCK_TABLES 和 GET_LOCK 以及许多其他的引用,所以我仍然对什么是最好的感到非常困惑。
许多人都有可能竞相按下一个按钮,如果多人得到确认,那将是灾难性的。
我知道这是竞争条件的一个典型例子,但 mysql 对我来说是陌生的领域。
我显然会在更新之前查询该项目的值并确保它没有写入,但是确保避免这种竞争条件的最佳方法是什么。
提前致谢。