我是这个话题的新手,我正在尝试验证我的理解。所以请考虑以下示例:-
Transaction 包含一个 select 和 update 语句,其中 update 语句取决于 select 语句返回的结果集。用户 A 和 B 并发执行事务,两个用户都选择了数据并即将执行更新。如果用户 A 先执行更新,用户 B 可能会出现 bug;因为它没有最新的结果集。这称为幻读案例。
对于可序列化的隔离级别:上述情况永远不会发生。事务是完全隔离的,不能同时工作。用户 B 的事务直到用户 A 完成其事务才能执行 select 语句。用户 B 将等待事务 A 完成。
对于可重复读隔离级别:事务 B 可以读取但不能对数据进行修改。这可能会导致幻读。
你能说这是否是正确的理解吗?