标签: repeatable-read

MySQL可重复读隔离级别和丢失更新现象

《高性能 Java 持久性》一书的 6.3.3.3 部分中写道,在 MySQL 可重复读取隔离级别中可能会出现丢失更新现象。这是截图:

在此输入图像描述

假设以下情况(隔离级别为 REPEATABLE READ):

              tx1                     |                tx2
-----------------------------------------------------------------------------------
START TRANSACTION;                    |
SELECT * FROM test WHERE id = 1;      |
( say, DB_TRX_ID = 7 at this moment)   |
                                      |
                                      |  START TRANSACTION;
                                      |  SELECT * FROM test WHERE id = 1;
                                      |  UPDATE test SET name="x" WHERE id = 1;
                                      |  COMMIT;(say, makes DB_TRX_ID = 10)
                                      |
UPDATE test SET name="y" WHERE id = 1;|
COMMIT;
Run Code Online (Sandbox Code Playgroud)

问题:

tx1 提交后,MVCC 是否会检测到行版本(DB_TRX_ID)不再等于 7(而是 …

mysql database relational-database repeatable-read

5
推荐指数
1
解决办法
5571
查看次数