mariadb行级读锁定

San*_*kar 5 mysql mariadb

任何mariadb后端是否支持行级读锁定?我的意思是:

我有一个可以在三到四台不同机器上运行的应用程序.机器数量是动态的,而不是固定地址.该应用程序将执行以下两个查询:

SELECT col3 from table1 WHERE col1=X
<do some checking with the version>
UPDATE table1 SET col2 = somevalue, col3 = somevalue WHERE col1=X
Run Code Online (Sandbox Code Playgroud)

现在,在第一个SELECT查询和第二个UPDATE查询之间,我不希望应用程序的任何实例甚至读取(不仅仅是WRITE)与col1 = X相对应的记录

有可能在mariadb中实现吗?

San*_*kar 5

回答我的问题:

我们可以使用SELECT ... FOR UPDATE子句来锁定各个记录.此锁定将在事务提交/回滚时自动释放.有关更多信息,访问:https://dev.mysql.com/doc/refman/5.6/en/innodb-locking-reads.html