mysql 事務隔離

2021-09-25 07:29:08 字數 538 閱讀 7001

分析在「可重複讀」事務隔離機制下,此時a 事務查詢的k的值和事務b查詢的值

1.首先a 開始事務,在可重複讀事務隔離機制下,start transaction 將會建立乙個檢視(注意只有 start transaction withconstent snapshot 才會在事務一開始建立檢視)

2.緊接著事務b也開啟事務,將會建立乙個檢視

3.事務c 此時更新k值,缺省會開啟乙個事務,更新完成後會提交

4.此時事務b 開始更新k的,注意 更新語句遵從乙個原則-當前讀(更新語句先讀後寫,而這個讀只能讀當前值,並不是讀取事務開始建立的檢視裡面的值)更新後此時值為3

5. 事務b開始查詢k值,在乙個事務內,能看到自身更新後的值,所以查詢後的值k為3

6. 事務a查詢k值,由於是在可重複讀事務隔離機制下,查詢得到的值為1,事務提交

7. 事務b提交

所以 最後結果為b查詢得到的k值為3 a查詢到的值為1

mysql事務隔離最高 Mysql事務隔離級別

mysql官方文件顯示 innodb中每個隔離級別的詳細描述如下 read uncommitted select語句以非鎖定方式被執行,但是乙個可能更早期版本的記錄會被用到。因此,使用這個隔離級別,比如,讀是不連貫的。著也被稱為 髒讀 dirty read 另外,這個隔離級別象read commit...

MySQL 事務隔離

未提交讀 read uncommitted 允許髒讀,也就是可能讀取到其他會話中未提交事務修改的資料 提交讀 read committed 只能讀取到已經提交的資料。oracle等多數資料庫預設都是該級別 不重複讀 可重複讀 repeated read 可重複讀。在同乙個事務內的查詢都是事務開始時刻...

Mysql 事務隔離

1 事務的特性 原子性 一致性 隔離性 永續性 2 多事務同時執行的時候,可能會出現的問題 髒讀 不可重複讀 幻讀 3 事務隔離級別 讀未提交 讀提交 可重複讀 序列化 4 不同事務隔離級別的區別 讀未提交 乙個事務還未提交,它所做的變更就可以被別的事務看到 讀提交 乙個事務提交之後,它所做的變更才...