MySQL資料庫之事務

2021-10-23 08:37:11 字數 939 閱讀 9553

1. sql標準的acid的定義:

2. innodb的acid實現

innodb儲存引擎的原子性a和永續性d主要是通過redo重做日誌來實現的,資料一致性除了redo日誌外,需要undo日誌來輔助實現,即當事務提交失敗時,通過undo日誌來實現回滾,取消該事務對資料庫的操作。隔離性i主要是通過鎖和mvcc機制來實現。

a. redo日誌(重做日誌):原子性、永續性

b. undo(回滾)日誌:一致性

c. 鎖:隔離性

a. 髒讀

b. 幻讀

c. 不可重複讀

d. 更新丟失

髒讀是事務b裡面修改了資料,

幻讀是事務b裡面新增了資料。

為了解決以上併發事務操作存在的問題和與併發性取個折中,定義了以下四個隔離級別:

a. read-uncommitted:讀未提交

沒有解決以上的任何乙個問題,讀寫均不需要加鎖,資料一致性最差,併發效能最好,存在併發操作的應用,如oltp,基本不會使用這個隔離級別;

b. read-committed:讀提交

能夠讀取其他已提交事務的資料修改,不存在髒讀和更新丟失問題,存在幻讀和不可重複讀問題。

c. repeatable-read:可重複讀

d. serializable:序列化

解決了以上的所有問題,對讀寫操作均需要加鎖,讀操作加共享鎖,寫操作加互斥鎖,序列化了多個事務操作,併發效能最差,資料一致性最好。

Mysql資料庫之事務

1.事務 乙個或多個sql語句組成乙個執行單元,這個執行單元要麼全部執行,要麼全部不執行。2.事務特性 1 原子性 乙個事務不可再分,要麼都執行,要麼都不執行。2 一致性 乙個事務的執行會使資料從乙個一致性狀態轉換到另乙個一致性狀態。3 隔離性 乙個事務的執行不受其他同步事務執行的影響。4 永續性 ...

資料庫之事務

事務是併發控制的單位,是使用者定義的乙個操作序列。這些操作要麼都做,要麼都不做,是個不可分割的工作單位。如果某一事務成功,則在該事務中進行的所有資料更改均會提交,成為資料庫中永久的組成部分。如果事務遇到錯誤,則必須取消或回滾,所有資料均被更改清除。1 原子性 atomicity 事務是資料庫的邏輯工...

資料庫之事務

概述 事務一般是指要做的或所做的事情。在計算機術語中是指訪問並可能更新資料庫中各種資料項的乙個程式執行單元 unit 特徵 事務具有4個基本特徵,分別是 原子性 atomicity 一致性 consistency 隔離性 isolation 永續性 duration 簡稱acid。原子性事務的原子性...