Mysql隔離級別的理解

2021-10-12 08:04:30 字數 649 閱讀 1262

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,從名字上看,說的是...