任何mariadb后端是否支持行级读锁定?我的意思是:
我有一个可以在三到四台不同机器上运行的应用程序。机器数量是动态的,而不是固定地址。应用程序将执行以下两个查询:
SELECT col3 from table1 WHERE col1=X
<do some checking with the version>
UPDATE table1 SET col2 = somevalue, col3 = somevalue WHERE col1=X
现在,在第一个SELECT查询和第二个UPDATE查询之间,我不希望应用程序的任何实例甚至读取(不仅仅是WRITE)与col1 = X相对应的记录
是否有可能在mariadb中实现?
答案 0 :(得分:5)
回答我的问题:
我们可以使用SELECT ... FOR UPDATE子句来锁定各个记录。此锁定将在事务提交/回滚时自动释放。有关更多信息,请访问:https://dev.mysql.com/doc/refman/5.6/en/innodb-locking-reads.html