四、永續性(durability)
事務具有4個特徵,分別是原子性、一致性、隔離性和永續性,簡稱事務的acid特性;
一、原子性(atomicity)
乙個事務要麼全部提交成功,要麼全部失敗回滾,不能只執行其中的一部分操作,這就是事務的原子性
二、一致性(consistency)
事務的執行不能破壞資料庫資料的完整性和一致性,乙個事務在執行之前和執行之後,資料庫都必須處於一致性狀態。
如果資料庫系統在執行過程中發生故障,有些事務尚未完成就被迫中斷,這些未完成的事務對資料庫所作的修改有一部分已寫入物理資料庫,這是資料庫就處於一種不正確的狀態,也就是不一致的狀態
三、隔離性(isolation)
事務的隔離性是指在併發環境中,併發的事務時相互隔離的,乙個事務的執行不能不被其他事務干擾。不同的事務併發操作相同的資料時,每個事務都有各自完成的資料空間,即乙個事務內部的操作及使用的資料對其他併發事務時隔離的,併發執行的各個事務之間不能相互干擾。
在標準sql規範中,定義了4個事務隔離級別,不同的隔離級別對事務的處理不同,分別是:未授權讀取,授權讀取,可重複讀取和序列化
1、讀未提交(read uncommited),
該隔離級別允許髒讀取,其隔離級別最低;比如事務a和事務b同時進行,事務a在整個執行階段,會將某資料的值從1開始一直加到10,然後進行事務提交,此時,事務b能夠看到這個資料項在事務a操作過程中的所有中間值(如1變成2,2變成3等),而對這一系列的中間值的讀取就是未授權讀取
2、授權讀取也稱為已提交讀(read commited),
授權讀取只允許獲取已經提交的資料。比如事務a和事務b同時進行,事務a進行+1操作,此時,事務b無法看到這個資料項在事務a操作過程中的所有中間值,只能看到最終的10。另外,如果說有乙個事務c,和事務a進行非常類似的操作,只是事務c是將資料項從10加到20,此時事務b也同樣可以讀取到20,即授權讀取允許不可重複讀取。
3、可重複讀(repeatable read)
就是保證在事務處理過程中,多次讀取同乙個資料時,其值都和事務開始時刻是一致的,因此該事務級別禁止不可重複讀取和髒讀取,但是有可能出現幻影資料。所謂幻影資料,就是指同樣的事務操作,在前後兩個時間段內執行對同乙個資料項的讀取,可能出現不一致的結果。在上面的例子中,可重複讀取隔離級別能夠保證事務b在第一次事務操作過程中,始終對資料項讀取到1,但是在下一次事務操作中,即使事務b(注意,事務名字雖然相同,但是指的是另乙個事務操作)採用同樣的查詢方式,就可能讀取到10或20;
4、序列化
是最嚴格的事務隔離級別,它要求所有事務被序列執行,即事務只能乙個接乙個的進行處理,不能併發執行。
四、永續性(durability)
一旦事務提交,那麼它對資料庫中的對應資料的狀態的變更就會永久儲存到資料庫中。–即使發生系統崩潰或機器宕機等故障,只要資料庫能夠重新啟動,那麼一定能夠將其恢復到事務成功結束的狀態
事物的四個特性
事物的特性 1.原子性 不可在細分,要麼執行,要麼不執行 2.一致性 主要針對資料庫,事物執行成功則資料庫變更,失敗不變更。3.隔離性 事物之間可以同時執行,事物之間是隔離的 4.持續性 事物一旦執行成功,執行之後的結果是持續的 ps 補充點資料型別基礎 8種資料型別及封裝類,及所佔位元組 型別 b...
mysql事務的 四個特徵(ACID)
事務的 四個特徵 acid 事務具有四個特徵 原子性 atomicity 一致性 consistency 隔離性 isolation 和持續性 durability 這四個特性簡稱為 acid 特性。1 原子性。事務是資料庫的邏輯工作單位,事務中包含的各操作要麼都做,要麼都不做 2 一致性。事 務執...
事物的四個特性和四個隔離級別
事物是一條或者多條sql語句組成的執行序列,這個序列中的所有語句都屬於同乙個工作單元,要麼同時完成,其中如果有乙個失敗,則其他操作都要回滾。事物是乙個不可分割的資料庫邏輯工作單位,要麼全部完成,要不失敗回滾。事務執行的結果必須使資料庫從乙個一致性狀態變到另乙個一致性狀態。乙個事物的執行不能被別的併發...