MySQL事務四大特徵以及四種事務隔離級別

2021-10-20 02:57:17 字數 1355 閱讀 8790

一:mysql事務的四大特性(acid)

1.原子性(atomicity)

原子性是指乙個事務的操作要麼全部成功,要麼全部失敗回滾。保證事務的操作成功則全部應用到資料庫,失敗則不能對資料庫產生任何影響。

2.一致性(consistency)

一致性是指事務必須從乙個一致性狀態轉換到另乙個一致性狀態。也就是乙個事務在執行之前到執行之後都要必須處於一致性狀態。

(例如a向b轉了10000元,不能a扣了錢後b再加錢)

3.隔離性(isolation)

當多個使用者共同操作同乙個資料庫時,資料庫為某乙個使用者開啟的事務,不能為其他使用者所干擾。

4.永續性(durability)

乙個事務一旦提交了,那麼資料庫對資料的改變將是永久的。

二:四種事務隔離級別

2.1:事務的併發問題

1.髒讀

b對資料進行增刪查改操作且未提交,如果a讀取到b的資料,b回滾,那麼a讀取到的將是髒資料。

2.不可重複讀

事務a對資料進行多次讀操作,事務b在其間對資料進行了修改,這是兩次讀取的資料不一致。

3.幻讀

事務a對一定範圍內的資料進行修改,這時事務b在此範圍內增加了一條資料,則a丟失對該資料的修改。

2.2 事務隔離級別

事務隔離級別

髒讀不可重複讀

幻讀讀未提交是是

是讀已提交否是

是可重複讀否否

是序列化否否

1.讀未提交(read-uncommited)

如果乙個事務已經開始寫資料,則另外乙個事務不允許同時進行寫操作,但允許其他事務讀此行資料,該隔離級別可以通過「排他寫鎖」,但是不排斥讀執行緒實現。這樣就避免了更新丟失,卻可能出現髒讀,也就是說事務b讀取到了事務a未提交的資料.

2.讀已提交(read-commited)

如果是讀事務,將允許其他事務讀寫,如果是寫事務,將禁止其他事務對其進行訪問。

3.可重複讀(repeatable read)

乙個事務可以多次讀乙個資料,在該事務執行結束時,其他事務不能對該資料進行訪問。

4.序列化(serializable)

提供嚴格的事務隔離,它要求事務序列化執行,事務只能乙個接乙個地執行。

事務的四大特徵

原子性atomicity 是指事務所包含的所有操作要麼全部成功,要麼全部失敗回滾。因此事務的操作如果成功就必須要完全應用到資料庫,如果操作失敗則不能對資料庫有任何的影響。一致性consistency 事務必須使資料庫從乙個一致性狀態變換到另乙個一致性狀態。乙個事務執行前和執行後都必須處於一致性狀態。...

資料庫事務的四大特性以及四種隔離級別

首先什麼是事務?這是來自官方的解釋 資料庫事務 transaction 是訪問並可能操作各種資料項的乙個資料庫操作序列,這些操作要麼全部執行,要麼全部不執行,是乙個不可分割的工作單位。事務由事務開始與事務結束之間執行的全部資料庫操作組成,簡單的來說就是我們執行一件事情從頭到尾的過程。任何支援事務的資...

Mysql 四大特性與四種隔離級別

四大特性 1 原子性。事務是乙個不可分割的整體,事務開始的操作,要麼全部執行,要麼全部不執行。2 隔離性。同一時間,只允許乙個事務請求同一組資料。不同的事務彼此之間沒有干擾。3 一致性。事務開始前和結束後,資料庫的完整性約束沒有被破壞 4 穩定性。事務完成後,事務對資料庫的所有更新將被儲存到資料庫,...