我理解isolation levels维基百科页面上“脏读”和“幻读”的例子。但是,我不确定如何对以下情况进行分类,以及应用哪种隔离级别或不同的策略来避免这种情况。
问题是,在两个表中T1完成写入之前,事务2选择B中的某些内容。步骤3中的select可能需要选择插入5中的行才是正确的。这是一个脏读,幻读或两者都没有。 READ_COMMITTED隔离级别是否足以避免问题?据我了解,使用READ_COMMITTED T2时不应该读取T1插入的新行。
答案 0 :(得分:1)
这是脏读。在READ_COMMITTED
隔离级别中,步骤2中的查询将不返回您在步骤1中插入但尚未提交的行,从而防止尝试访问尚未插入的数据失败。
幻像读取意味着您在事务2中执行两次相同的查询并获得一组不同的结果。