MySQL 的四種事務隔離級別

2021-08-29 01:57:02 字數 996 閱讀 8194

mysql資料庫提供了四種事務隔離級別:

事務指的是滿足 acid 特性的一組操作,可以通過 commit 提交乙個事務,也可以使用 rollback 進行回滾。

事務是不可分割最小單元,事務內所有操作要麼全部成功提交,要麼全部失敗回滾。

回滾可以用回滾日誌來實現,回滾日誌記錄著事務所執行的修改操作,在回滾時反向執行這些修改操作即可。

乙個事務所做的修改在提交以前,對其它事務是不可見的。

資料庫在事務執行前後都保持一致性狀態。

在一致性狀態下,所有事務對乙個資料的讀取結果都是相同的。

事務一旦提交,其所做的修改將會永久儲存到資料庫中。即使系統發生崩潰,事務執行的結果也不能丟失。

使用重做日誌來保證永續性

只有滿足一致性,事務的執行結果才是正確的。

在無併發的情況下,事務序列執行,隔離性一定能夠滿足。此時只要能滿足原子性,就一定能滿足一致性。

在併發的情況下,多個事務並行執行,事務不僅要滿足原子性,還需要滿足隔離性,才能滿足一致性。

事務滿足永續性是為了能應對資料庫崩潰的情況。

在併發環境下,事務的隔離性很難保證,因此會出現很多併發一致性問題

兩個事務 a 和 b 都對乙個資料進行修改,a 先修改,b 後修改,b 的修改覆蓋了a 的需改

事務 a 修改了乙個資料未提交,事務 b 讀取了這個資料,如果事務 a 回滾這次修改,那麼事務 b 讀到的就是髒資料。

事務 a 讀取乙個資料,事務 b 修改了這個資料。如果事務 a 再次讀取這個資料會導致兩次讀取結果不一致。

事務 a 讀取某個範圍的資料,事務 b 在這個範圍內插入一條資料。如果事務 a 再次讀取這個範圍的資料會導致兩次讀取結果不一致。

乙個事務所做的修改即使沒有提交,對其他事務也是可見的。

乙個事務所做的修改在提交之前對其他事務是不可見的。

保證乙個事務內多次讀取同樣資料的結果是一致的。

強制事務序列執行。

MySQL 四種事務隔離級別

mysql 事務都是指在 innodb 引擎下,myisam 引擎不支援事務。顯而易見,能夠讀取到,其他事務未提交的資料。既然其他事務未提交,就代表資料可能會回滾,這也意味著,可能讀取到的資料根本就不存在。特點 能讀取其它事務未提交的資料。存在事務問題 髒讀,不可重複讀,幻讀 這個隔離級別,只能讀取...

MySQL的四種事務隔離級別

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

mysql的四種事務隔離級別

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