1.查看當前會話隔離級別 java
select @@tx_isolation; session
2.查看系統當前隔離級別 併發
select @@global.tx_isolation; 命令行
3.設置當前會話隔離級別 事務
set session transaction isolatin level repeatable read; it
4.設置系統當前隔離級別 io
set global transaction isolation level repeatable read; table
5.命令行,開始事務時 select
set autocommit=off 或者 start transaction 數據
關於隔離級別的理解
1.read uncommitted
能夠看到未提交的數據(髒讀),舉個例子:別人說的話你都相信了,可是可能他只是說說,並不實際作。
2.read committed
讀取提交的數據。可是,可能屢次讀取的數據結果不一致(不可重複讀,幻讀)。用讀寫的觀點就是:讀取的行數據,能夠寫。
3.repeatable read(MySQL默認隔離級別)
能夠重複讀取,但有幻讀。讀寫觀點:讀取的數據行不可寫,可是能夠往表中新增數據。在MySQL中,其餘事務新增的數據,看不到,不會產生幻讀。採用多版本併發控制(MVCC)機制解決幻讀問題。
4.serializable
可讀,不可寫。像java中的鎖,寫數據必須等待另外一個事務結束。
關於隔離級別的理解參考了andyhu1007的文章:http://www.iteye.com/topic/322382