防止脏读我有一个MySQL表在MySQL
mysql> select * from test;
+----+--------+
| id | status |
+----+--------+
| 1 | unread |
+----+--------+
假设我读从机M1,M2,M3,M4这个应用,其相互的H.A。
我要的是:
如果status == unread
那么M1中的任何一个(也只能),M2,M3,M4可以拿起该行改变其状态processing
,并进一步对其进行处理。
但我面对的是多脏的哪些问题读为M1,M2,M3,M4同时阅读status = unread
他们同时改变的状态processing
并开始处理它。
我该如何确保m1,m2,m3,m4中只有一个在一次读取一行?
因为我用java与MySQL进行通讯,所以弹簧启动更具体 –
没关系。如果你使用JDBC,你也可以调用这个构造。 – Andremoniy
当我从机器m1,m2,m3,m4读取数据时,这将确保m1,m2,m3,m4中只有一个读取表格,如果status = unread,则修改其状态'并处理它 –