题。 方法:尝试在session1的两次查询之间添加符合其查询条件的记录。 STEP 0:把两个session都设置为RR隔离级别: SET CURRENT ISOLATION TO RR STEP 1:在session1中做查询操作,但不提交: SELECT * FROM TA WHERE AC1 > 0 AND AC1 < 10 假定查询结果有6条记录。 STEP 2:在session2中INSERT一条记录: INSERT INTO TA (AC1, AC2) VALUES (7, 1) Session2被block住了…… STEP 3:在session1中做同样的查询操作: SELECT * FROM TA WHERE AC1 > 0 AND AC1 < 10 查询结果仍为6条记录,且数据和第一次查询保持一致。 STEP 4:在session1中做commit/rollback操作 则session2立即继续执行。 结论:在“RR”隔离级别下不会产生“幻象记录”的问题。 作者“java-true”
|