gpt4 book ai didi

mysql - mysql中的独占读锁

转载 作者:行者123 更新时间:2023-11-30 23:00:56 27 4
gpt4 key购买 nike

我有一个表,用于维护和分配输入的一部分(来自一个大输入表),用于流程的多个实例。该表组织如下:

BlockInfo Table
---------------
BlockID int primary key
Status varchar

每个进程都查询它应该接受的输入 block ,并处理该 block 。

我希望查询如下:

select BlockID 
from BlockInfo
order by BlockID
where Status='available'
limit 1

为了达到这个效果,我会要求服务器保持独占读锁,因为如果读锁是共享的,那么多个实例可能会得到同一个 block ,这会导致重复努力并且是不可取的。

我可以获得独占写锁,但实际上不能写任何东西。但是我想知道mysql是否允许独占读锁。

了解其他实现方法也会有所帮助。

最佳答案

你应该做的是:

  1. 获取独占写锁
  2. 选择要处理的行
  3. 将其状态更改为“处理中”(或“可用”以外的其他状态)
  4. 解锁 table
  5. 对行进行所有处理
  6. 更新行以将其状态改回“可用”

这将允许其他进程与此同时处理其他行。它使表保持锁定足够的时间,以防止他们尝试在同一行上工作。

关于mysql - mysql中的独占读锁,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24053018/

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