我了解隔离级别的维基百科页面上为“脏读”和“幻读”给出的示例。但是,我不确定如何对以下情况进行分类,以及应用什么隔离级别或不同的策略来避免这种情况。
- 事务 1:在表 A 中插入行
- 事务 2:选择表 A 中的行
- 事务 2:根据之前读取的内容选择表 B 中的行
事务 2:提交- 事务 1:在表 B 中插入行
- 事务 1:提交
问题是事务 2 在 T1 在两个表中完成写入之前选择了 B 中的某些内容。第 3 步中的选择可能需要选择 5 中插入的行才能正确。这是脏读,幻读还是两者都不是。READ_COMMITTED 隔离级别是否足以避免问题?据我了解,使用 READ_COMMITTED T2 不应读取 T1 在此时插入的新行。