四大屬性底層實作原理?
A(原子性):
要么全部完成,要么完全不起作用,底層實作原理:undo log(當這個事務對資料庫進行修改的時候,innodb 生成對應 undo log,他會記錄這個 SQL 執行的相關資訊,如果 SQL 執行失敗發生這個回滾,innodb 根據這個 undo log 內容去做相反的作業,比如說我執行了一個 insert 操作,那么回滾的時候,就會執行一個相反的操作,就是 delete,對應 update,回滾的時候也是執行相反的 update)
C(一致性):
一旦事務完成(不管成功還是失敗),業務處于一致的狀態,而不會是部分完成,部分失敗,事務執行前后,資料庫的完整約束沒有遭受破壞,事務執行前后都是合法的一個資料狀態,
I(隔離性):
多事務會同時處理相同的資料,因此每個事務都應該與其他事務隔離開來,防止資料損壞,底層實作原理:寫-寫操作:鎖(和 java 里面的鎖機制是一樣的),寫-讀操作:MVCC(多版本并發控制,可以通過樂觀鎖和悲觀鎖實作,只在讀已提交和可重復讀二個隔離級別,事務的排它鎖形式修改資料,修改之前把資料放到 undolog 里面,通過回滾指標關聯,成功了什么都不做,失敗了,從 undolog 回滾資料,)
D(持久性):
一旦事務完成,無論發生什么系統錯誤,它的結果都不應該受到影響,事務的結果被寫到持久化存盤器中,底層實作原理?
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/273795.html
標籤:其他