mysql的幾種事務隔離級別

2021-08-22 02:39:32 字數 778 閱讀 6315

自我記錄  自我記錄。。。(有問題歡迎指出)

髒讀,read-uncommitted

事務都可以「看到」未提交事務的執行結果

1、a : 450    開啟事務,查值為450

2、b : 450 -> 400  開啟事務,修改值為400

3、a : 400    事務內再查,值變成了400

4、b : 回滾,值變回了450,但是a查的還是400,那麼a查到的400就是髒資料

不可重複讀, read-committed

乙個事務在開始時,只能"看見「已提交」事務所做的改變

1、 a:450   開啟事務查,值為450

2、 b:450 -> 400   b開啟事務,修改值為400,事務未提交

3、 a:450  a查的時候還是450

4、 a:400  b提交事務,a再查,值變成了400

可重複讀, repeatable-read

1、 a:400 開啟事務

2、 b:400 -> 350

3、 a:400  不管b事務是否已提交,在a的事務內,讀出的資料均是400

事務在讀取某資料的瞬間(就是開始讀取的瞬間),必須先對其加 行級共享鎖,直到事務結束才釋放;

事務在更新某資料的瞬間(就是發生更新的瞬間),必須先對其加 行級排他鎖,直到事務結束才釋放。

序列,serializable

隔離級別強的一批,不過會鎖表

mysql隔離級別 MySQL 事務隔離級別

mysql innodb所提供的事務滿足acid的要求,事務是通過事務日誌中的redo log和undo log來實現原子性 undo log 一致性 undo log 永續性 redo log 事務通過鎖機制實現隔離性。1 事務隔離級別與實現read uncommitted 讀未提交 read c...

mysql事務隔離級別詳解 事務的隔離級別詳解

事務的隔離級別 在資料庫操作中,為了有效保證併發讀取資料的正確性,提出的事務隔離級別。問題的提出 資料庫是要被廣大客戶所共享訪問的,那麼在資料庫操作過程中很可能出現以下幾種不確定情況。更新丟失 兩個事務都同時更新一行資料,乙個事務對資料的更新把另乙個事務對資料的更新覆蓋了。這是因為系統沒有執行任何的...

MySQL事務隔離級別

sql標準定義了4類隔離級別,包括了一些具體規則,用來限定事務內外的哪些改變是可見的,哪些是不可見的。低階別的隔離級一般支援更高的 併發處理,並擁有更低的系統開銷。read uncommitted 讀取未提交內容 在該隔離級別,所有事務都可以看到其他未提交事務的執行結果。本隔離級別很少用於實際應用,...