mysql - 锁定 MySQL 中的特定记录

标签 mysql locking nonblocking

我即将实现如下记录锁定机制:

Table1:
    Field: "ID" (AutoIncrement, Primary)
    Field: "Name" (Text)
    Field: "More fields..."

Table2:
    Field: "ID" (Unique)

为了锁定 Table1 中的特定记录,我将在 Table2 中创建具有相同 ID 的记录。如果由于这样的记录已经存在而导致创建失败,则该记录必须被另一个进程锁定并且我旋转。如果成功,我就拥有锁并可以修改记录。完成后,我删除了 Table2 中的锁定记录。

我的问题是这是否是实现每记录锁定的有效方法,如果不是,是否有这样的事情?

干杯, 查理。

最佳答案

您可以使用innodb对于基于行的锁定,
甚至read-lock而不是对另一个表施加锁定,
(而不是让mysql来处理竞争条件)

关于mysql - 锁定 MySQL 中的特定记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4325168/

相关文章:

java - 同步块(synchronized block) - 锁定多个对象

sql - 在长插入期间对 MyISAM 表的读访问?

c - C 中无自旋锁的非阻塞套接字接受

java - Spring Boot 和 MySQL 的连接已关闭

MYSQL sql在表中查找计数大于x的id

php - MySQL - 处理列表的到期日期

javascript - nodeJS 等待无法 promise 的事件

php - 查找与关键字给定的相似字符串,每个关键字都有自己的 'power'

c++ - C++:递归锁-有什么缺点吗?

java - 如何锁定单个 ConcurrentHashMap 对象进行修改而不阻塞整个映射?