事務的特性以及隔離級別

2021-08-10 13:16:37 字數 1214 閱讀 7217

1、什麼是事務 

事務是併發控制的單位,一系列操作組成的工作單元,該工作單元內的操作是不可分割的,也就是事務具有原子性,乙個事務中的一系列的操作要麼全部成功,要麼乙個都不做,所有操作必須成功完成,否則在每個操作中所作的所有更改都會被撤消。 

事務的結束有兩種,當事務中的所以步驟全部成功執行時,事務提交。如果其中乙個步驟失敗,將發生回滾操作,撤消撤消之前到事務開始時的所以操作。 

2、事務的 acid 

事務具有四個特徵:原子性(atomicity)、一致性(consistency)、隔離性(isolation)和持續性(durability)。這四個特性簡稱為 acid 特性。 

1、原子性(atomicity) 

事務是資料庫的邏輯工作單位(不可再分),事務中包含的各操作要麼全部完成,要麼都不完成 

2、 一致性(consistency) 

事務執行的結果必須是使資料庫從乙個一致性狀態變到另乙個一致性狀態。 

當資料庫只包含成功事務提交的結果時,就說資料庫處於一致性狀態。假如資料庫系統執行中發生故障,有些事務尚未完成就被迫中斷,這些未完成事務對資料庫所做的修改有一部分已寫入物理資料庫,這時資料庫就處於一種不一致狀態。

3、隔離性(isolation)

乙個事務的執行不能其它事務干擾。乙個事務內部的操作及使用的資料對其它併發事務是隔離的,併發執行的各個事務之間不能互相干擾。 

4、 持續性(durability) 

持續性也稱永久性,是指乙個事務一旦提交,它對資料庫中的資料的改變就應該是永久性的。接下來的其它操作或故障不應該對其執行結果有任何影響。 

在平常的專案開發裡資料庫操作一般都是併發執行的,即有多個事務併發執行,資料庫事務併發帶來的問題有:

髒讀:乙個事務看到了另乙個事務未提交的更新資料;當事務讀取尚未提交的資料時,就會發生這種情況。

不可重複讀:在同一事務中,兩次讀取同一資料,得到內容不同,也就是有其他事務更改了這些資料;

幻讀:乙個事務在執行過程中讀取到了另乙個事務已提交的插入資料;即在第乙個事務開始時讀取到一批資料,但此後另乙個事務又插入了新資料並提交,此時第乙個事務又讀取這批資料但發現多了一條,即好像發生幻覺一樣。

隔離級別:

MySQL事務的4種特性以及事務隔離級別

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

MySQL的基本特性以及事務的隔離級別

原子性 要操作的事務被看作乙個整體單元,要麼全部成功,要麼全部失敗 一致性 事務完成時,必須所有的資料都保持一致狀態 隔離性 併發時,防止多個事務交叉進行,而導致的資料不一致,提交後會導致丟失更新 永續性 保證資料會固化到乙個地方,即永久修改 第一類丟失更新 併發訪問時,將其他事務提交的資料回滾 第...

資料庫事務特性以及隔離級別

資料庫如果支援事務的操作,那麼就具備以下四個特性 原子性 atomicity 事務是資料庫的邏輯工作單位,事務中包括的諸操作要麼全做,要麼全不做。一致性 consistency 事務執行的結果必須是使資料庫從乙個一致性狀態變到另乙個一致性狀態。一致性與原子性是密切相關的。隔離性 isolation ...