gpt4 book ai didi

mysql - 如何保证MySQL selects不干扰?

转载 作者:行者123 更新时间:2023-11-29 00:57:21 26 4
gpt4 key购买 nike

我的 MySQL 数据库中有一个表,其中基本上包含类似“cron”的任务。基本上,用户访问一个页面,脚本 (php) 检查数据库 cron 表,获取最新的 5 个“可用”结果,并执行与任务相关的脚本。

我目前唯一预见到的问题是 2 个用户可能会得到相同的任务。请注意,目前我首先运行一个 UPDATE 查询,它将 5 个任务分配给当前用户。之后,我执行 SELECT 查询以将 5 个任务分配给当前用户,当他完成后,我将任务标记为已完成。

理论上,没有 2 个用户应该得到相同的任务,但我不确定。我只是想知道 MySQL 是否可能有一个内置机制来确保这一点,或者是否有已知的方法?

谢谢。

最佳答案

您想使用 Transactions .通过这种方式,您可以确保 [UPDATE、SELECT、UPDATE] 等多步操作要么完全完成,要么根本不发生。

这是经典concurrency问题,值得阅读一般的并发和事务,以便您了解原则。这将帮助您避免后续问题(并发中有很多棘手的问题!)。

关于mysql - 如何保证MySQL selects不干扰?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5379058/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com