1.read uncommitted
能夠看到未提交的數據(髒讀),舉個例子:別人說的話你都相信了,可是可能他只是說說,並不實際作。
2.read committed
讀取提交的數據。可是,可能屢次讀取的數據結果不一致(不可重複讀,幻讀)。用讀寫的觀點就是:讀取的行數據,能夠寫。
3.repeatable read(MySQL默認隔離級別)
能夠重複讀取,但有幻讀。讀寫觀點:讀取的數據行不可寫,可是能夠往表中新增數據。在MySQL中,其餘事務新增的數據,看不到,不會產生幻讀。採用多版本併發控制(MVCC)機制解決幻讀問題。
4.serializable
可讀,不可寫。像java中的鎖,寫數據必須等待另外一個事務結束。
【髒讀:】事務一在未提交時,事務二查詢到事務一更新的數據,此時事務二讀取到的是事務一種保存在內存 上的數據。
【不可重複讀:】事務一在查詢數據,查詢了倆次不同,這倆次中間,事務二更新了數據,致使數據不一致。
【幻讀:】事務一倆次查詢表中記錄數,獲得的結果不同,由於這倆次中間事務二添加或刪除了數據行數據, 致使記錄行數不一致。