查詢mysql事務隔離級別


1.查看當前會話隔離級別

 

select @@tx_isolation;

 

2.查看系統當前隔離級別

 

select @@global.tx_isolation;

 

3.設置當前會話隔離級別

 

set session transaction isolatin level repeatable read;

 

4.設置系統當前隔離級別

 

set global transaction isolation level repeatable read;

 

5.命令行,開始事務時

 

set autocommit=off 或者 start transaction

 

關於隔離級別的理解

 

1.read uncommitted

 

可以看到未提交的數據(臟讀),舉個例子:別人說的話你都相信了,但是可能他只是說說,並不實際做。

 

2.read committed

 

讀取提交的數據。但是,可能多次讀取的數據結果不一致(不可重復讀,幻讀)。用讀寫的觀點就是:讀取的行數據,可以寫。

 

3.repeatable read(MySQL默認隔離級別)

 

可以重復讀取,但有幻讀。讀寫觀點:讀取的數據行不可寫,但是可以往表中新增數據。在MySQL中,其他事務新增的數據,看不到,不會產生幻讀。采用多版本並發控制(MVCC)機制解決幻讀問題。

 

4.serializable

 

可讀,不可寫。像java中的鎖,寫數據必須等待另一個事務結束。

轉載自:https://blog.csdn.net/joe_007/article/details/7014381


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM