MySQL 行锁定 myisam innodb

标签 mysql locking row innodb myisam

我有一个理论问题,在网上找不到好的解决方案:

对于具有 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/

相关文章:

MySql - 时间安排查询

Mysql 三表连接同时连接一列?

javascript - 获取mysql的所有数据显示在div php javascript中

php - 每次在数据库中找到该字符串时,都将其显示出来

ios - 我想对 UITableView 中的行进行编号

asp.net - 使用 ASP.NET 从 Excel 更新大型 MySQL 数据库

mysql - SELECT ... FOR UPDATE 是否应该始终包含 ORDER BY?

java - 可以从一个线程转移到另一个线程的锁

c++ - static lock_guard 和 static mutex 也一样吗?

html - CSS 和 Table/Tr 行大小调整