一: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 穩定性。事務完成後,事務對資料庫的所有更新將被儲存到資料庫,...