1、read uncommitted 讀取未提交
查詢時可以查詢到沒有提交的資料,導致髒讀
2、read committed 讀取提交內容
前一次查詢和後一次查詢中資料間有被增刪改,導致查詢資料不一致,導致不可重複讀,但不能讀取到未提交的資料
3、repeatable read 可重複讀
會導致幻讀,並不是說兩次讀取獲取的結果集不同,幻讀側重的方面是某一次的 select 操作得到的結果所表徵的資料狀態無法支撐後續的業務操作。
更為具體一些:select 某記錄是否存在,不存在,準備插入此記錄,但執行 insert 時發現此記錄已存在,無法插入,此時就發生了幻讀。
注意:a事務開啟後所讀取到的資料均在執行查詢那刻開始的資料,後面不會改變。比如a開啟事務,b修改並提交,並且a在b提交之前並沒有查詢,則a查詢可以查詢到最新的資料,此時b再做第二次提交,則a查詢還是b第一次提交的資料。
4、serializable 可序列化
不同事務等待依次執行
事務隔離級別的理解
資料庫事務的隔離級別有4種,由低到高分別為read uncommitted read committed repeatable read serializable 而且,在事務的併發操作中可能會出現髒讀,不可重複讀,幻讀。下面通過事例一一闡述它們的概念與聯絡。read uncommitted 讀未提...
mysql隔離級別的說明
原子性 一致性 隔離性 永續性 多事物同時執行的時候可能會出現髒讀 不可重複讀 幻讀 事物的隔離級別 讀未提交 read uncommitted 會出現髒讀 一般用的非常少 讀提交 read committed 可重複讀 repeatable read 序列化 serializable 用的很少 嚴...
對不同隔離級別的理解
以下是我個人的理解,有不對的地方,還望博友指出哈。在資料庫中,有4種不同的隔離級別供我們選擇,分別是read uncommited,read commited,repeatable read,serializable。我來依依解釋這四種級別 第乙個,read uncommited,從名字上看,說的是...