鍍金池/ 問答/數(shù)據(jù)庫/ mysql事務(wù)RR隔離級別到底能否解決幻讀的問題?

mysql事務(wù)RR隔離級別到底能否解決幻讀的問題?

在mysql的innodb引擎 默認RR隔離級別下, 假設(shè)表中有5條數(shù)據(jù),
1.如果事務(wù)A中查詢所有數(shù)據(jù)

2.然后在事務(wù)B中向表中插入一條數(shù)據(jù)并提交

3.回到事務(wù)A中查詢, 發(fā)現(xiàn)數(shù)據(jù)沒有新增

上面三步貌似已經(jīng)可以證實解決了幻讀的問題

但是如果在第三步不是查詢, 而是插入, 卻會提示你數(shù)據(jù)已經(jīng)存在出現(xiàn)主鍵沖突, 或者你進行update, 也是可以進行更新的(雖然讀不到這條數(shù)據(jù)) 這應(yīng)該不屬于幻讀了吧?

那么這到底是什么原因呢?

回答
編輯回答
別傷我

RR在讀取數(shù)據(jù),事務(wù)開啟的時候,不允許修改操作。可以解決不可重復(fù)讀的問題,但是還是不能根本解決幻讀問題?;米x對應(yīng)的應(yīng)該是insert操作。RR針對的是update操作。

2017年10月15日 23:21
編輯回答
帥到炸

這個推薦一篇文章吧,希望能解決你的困惑,寫的還是挺詳細的:
撥開云霧見天日:數(shù)據(jù)庫單機事務(wù)原理全解析

2018年2月5日 23:17