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

2021-10-18 12:09:10 字數 641 閱讀 4054

1、讀未提交、髒讀、未授權讀取;

解釋兩個事務同時進行,事務2讀取到了事務1修改了、但還沒有完成事務commit的資料;

2、讀已提交、不可重複讀、授權讀取;

解釋乙個事務中,可以讀取到其他事務提交的資料,所以說,在這個事務中針對乙個資料的多次讀取(重複讀)可能會存在不同的值;

3、可重複讀、幻讀;

解釋乙個事務中的任何時間點,針對同乙個資料的讀取始終是事務開始時的這個資料的值(已提交的值);

就算期間這個資料的值被其他事務提交改變,這個事務至始至終,讀取到的這個值,都是該事務開始時資料庫中這個資料的已提交值。

由於它的可重複讀的特性,從而產生幻讀;

針對同一時刻,兩個不同事務中對同一資料的讀取可能會存在不同的結果,這一特性叫做幻讀;

資料a在事務1開始時刻的值是1,那麼在整個事務1生命週期中,事務1讀取到的a都是1。

如果期間事務2把a值改變為2並提交,事務2結束;

然後事務1再次開啟,讀取到的值就變成2了。雖然在事務1前一次結束到事務1再一次開始期間,資料a都沒有被修改過,但是針對資料a的讀取就是出現了不同的值,就跟幻覺一樣;

如圖image.png

4、序列化;

解釋最嚴格的事務隔離級別,所以事務序列執行。資料庫事務訪問效率低,不存在事務間資料干擾。

mysql隔離級別 簡書 MySQL的隔離級別

隔離性 隔離級別 如果沒有隔離級別 涉及到的資料命令 begin 開始事務 commit 提交事務 rollback 事務回滾 禁止自動提交 set autocommit 0 設定隔離級別 set tx isolation read uncommitted read uncommitted 讀取未提...

mysql隔離級別 簡書 MySQL事務的隔離級別

一 事務的基本要素 acid 1 原子性 atomicity 事務開始後所有操作,要麼全部做完,要麼全部不做,不可能停滯在中間環節。事務執行過程 錯,會回滾到事務開始前的狀態,所有的操作就像沒有發生一樣。也就是說事務是乙個不可分割的整體,就像化學中學過的原子,是物質構成的基本單位。2 一致性 con...

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

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