我有一个理论问题,在网上找不到好的解决方案:
对于具有 100,000 个记录的 tblA。
我想要运行多个进程/应用程序,每个进程/应用程序都访问 tblA。
我不希望应用程序访问相同的记录。即,我希望 appA 访问前 50 行,appB 访问接下来的 50 行,然后 appC 访问接下来的 50 行。
所以基本上我希望应用程序对表中的下一个“N”记录进行某种提取。我正在寻找一种尽可能快地访问/处理行数据的方法,本质上是同时运行应用程序。但我不希望应用程序处理相同的行。
那么,这样的流程应该如何设置呢?
它只是在做一种:
select from tblA limit 50
and doing some kind of row locking for each row (which requires innodb)
指针/伪代码会很有用。
最佳答案
这是来自 DBA StackExchange 的一些帖子
它讨论了 SELECT ... LOCK IN SHARE MODE
以及随之而来的潜在麻烦。
Percona 与 SELECT ... FOR UPDATE
关于MySQL 行锁定 myisam innodb,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9436728/