MySql的事務

一、數據庫事務的四大特性(ACID):
A(Atomicity)原子性:事務中的所有操作,要麼全部完成,要麼不完成。
C(Consistency)一致性:事務執行之前和之後,數據庫處於一致狀態。事務正確完成,數據庫中的數據正確。事務出現錯誤,數據庫中的數據回滾。
I(Isolation)隔離性:併發場景中,事務和事務之間是相互隔離的。
D(Duration)持久性:事務提交完成之後,數據庫中的數據保存完好,並記錄日誌。

二、MySql事務併發的問題
(1)髒讀:事務A添加一條記錄未提交,事務B讀到事務A添加的記錄,此時事務A回滾,事務B讀到的數據爲髒數據。
(2)幻讀:事務A讀取記錄,事務B添加一條記錄,事務A再次讀取,發現新增一條記錄。(側重添加)
(3)不可重複讀:事務A讀取一條記錄,事務B修改事務A讀取的記錄,事務A再次讀取記錄,兩次記錄不一樣。(側重於修改)

三、MySql事務的隔離級別
(1)讀未提交(Read Uncommitted),可能出現-->髒讀,不可重複讀,幻讀
(2)讀已提交(Read Committed),可能出現-->不可重複讀,幻讀
(3)可重複讀(Repeatable Read),可能出現-->幻讀
(4)可串行化(Serializable)

四、InnoDB原理:MySql數據庫事務實現的原理
在數據修改時,記錄了Redo Log和Undo Log。
Redo Log(重做日誌):實現持久性。
Undo Log(回滾日誌):實現原子性和一致性。提供回滾和多個行版本控制。

五、CAP定理
C(Consistency)一致性:對於某個指定的客戶端,讀操作能返回最新的數據。
A(Available)可用性:非故障的節點在合理的時間返回合理的響應。
P(Tolerance of network Partition):某個服務出現故障,仍然能夠工作。集羣。
Zookeeper是CP原則。

六、BASE理論(對CAP中AP的拓展)
Basically Available(基本可用):部分功能不可用,核心功能可用。
Soft state(軟狀態):允許系統存在中間狀態,此狀態不影響系統的可用性。
Eventually consistent (最終一致性):經過一段時間,所有的節點數據達到一致。
 
七、分佈式事務的方案
 (1)2PC
 (2)TCC
 (3)本地消息表
 (4)MQ事務
 (5)Sega

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章