資料庫 mysql學習筆記4之事務

2021-10-09 02:25:17 字數 1074 閱讀 9340

--自動提交? @@autocommit=1

--手動提交? commit;

--事務回滾? rollback?

begin

;

或者

start

transaction

;

a 原子性:事務是最小的單位,不可再分割。

c 一致性:事務的基本要求,乙個事務執行之前和執行之後都必須處於一致性狀態。

i 隔離性:當多個使用者併發訪問資料庫時,比如同時操作同一張表時,資料庫為每乙個使用者 開啟事務,多個併發事務之間要相互隔離。

d 永續性:事務一旦結束(commit,rollback),就不可以返回。

資料庫操作時,在併發情況可能出現的問題:

第1類丟失更新:事務a回滾時,把已經提交的事務b的更新資料覆蓋了。

第2類丟失更新:事務a覆蓋事務b已經提交的資料,造成事務b所做操作丟失。

解決方法:加鎖,只允許併發乙個更新事務。

a事務讀取b事務尚未提交的資料並在此基礎上操作,而b回滾,a讀取的資料為臟資料。

解決方法:如果在第乙個事務提交前,任何其他事務不可讀取其修改過的值。

乙個事務對一行資料讀取兩次得到不同的結果。

解決方法:如果只有在修改事務完全提交後才能讀取資料。

在兩個事務中執行同一條查詢語句得到不同結果,第二次讀會增加乙個資料行。

解決方法:如果操作事務完成資料處理之前,任何其他事務都不可新增新資料。

read uncommitted:如果乙個事務已經開始寫資料,另乙個事務不允許同時進行寫操作,但允許其他事務讀此行資料。

read committed:讀取資料的事務允許其他事務繼續訪問該行資料,但未提交的寫事務禁止其他事務訪問。(解決髒讀)

repeatable read:兩次讀結果一樣。(解決不可重複讀)

serializable:序列化。(不能並行操作)

Mysql資料庫之事務

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

MySQL資料庫之事務

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

資料庫之事務

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