事務隔離級別和傳播行為 如何確認當前事務的隔離級別

2021-10-14 12:31:27 字數 993 閱讀 9496

我們知道,可以分別用 @@global.transaction_isolation 和 @@ session.transaction_isolation來檢視全域性或會話級隔離級別,或者用 @@transaction_isolation 檢視會話級隔離級別。也就是說: @@session.transaction_isolation 和 @@transaction_isolation 二者等價。

可以看到全域性和會話級的隔離級別是不一樣的

另外,我們也知道,在修改隔離級別時若不指定 global/session 關鍵字,則只會針對當前會話的下乙個事務生效,下乙個事務結束後,又會恢復當前會話此前設定的隔離級別。

但可能有些同學不太放心,或者可能就想確認某個事務的隔離級別。接下來,我們一起來看下,怎麼檢視確認某個事務的隔離級別。

這種情況下,我們就需要借助 information_schema.innodb_trx這個檢視了,看下面例子。

1、執行 select @@tx_isolation 等同於執行 select @@session.tx_isolation(或者執行 show variables like 『transaction_isolation』),只能看到當前會話(session)的隔離級別。

2、執行 select @@global.tx_isolation 檢視全域性隔離級別設定,和執行 show global variables like 『transaction_isolation』 一樣。

3、想要檢視具體某個事務裡的隔離級別,需要在 information_schema.innodb_trx 檢視中確認。

Spring 事務隔離級別和傳播行為

名詞 含義原因 髒讀乙個事務讀取了另乙個事務還沒有提交的資料 乙個事務對某資料進行更新,但並未提交,另一事務讀取到了該資料,但是前乙個事務如果回滾,那麼後乙個事務就讀取到了錯誤資料 不可重複讀 乙個事務多次讀取同乙個資料,結果不同 乙個事務在2次讀取某資料之間時,另乙個事務對資料進行了更新,導致前乙...

事務的隔離級別和傳播行為

size medium 事務的隔離級別和傳播行為 事務的隔離級別 資料庫系統提供了4種事務隔離級別,在這4種隔離級別中,serializable的隔離級別最高,read uncommitted的隔離級別最低 read uncommitted 讀未提交資料 會出現髒讀 read committed 讀...

事務隔離級別 傳播行為

隔離級別 isolation.read uncommitted 讀未提交 isolation.read committed讀已提交 會出現 不可重複讀 虛讀 oracle的預設隔離級別 repeatable read 有可能會發生 虛讀 mysql的隔離級別 serializable 序列化 同一時...