MySql學習筆記 ACID 隔離級別)

2021-09-26 06:37:11 字數 718 閱讀 7801

隔離級別

乙個事務中的所有操作要麼全成功,要麼全部失敗回滾

從乙個一致性狀態轉到另乙個一致性的狀態

在事務執行過程**現系統崩潰等狀態,表中資訊也不會有所改變,因為沒有被提交

當乙個事務所做的修改在最終提交以前,對其他事務是不可見的。

當事務一旦被提交,就會永久的儲存在資料庫中

在該級別中,對事務中的內容進行修改,即使是沒有提交,對其他事務也都是可見的,這樣會出現髒讀的情況

乙個事務開始時,只能「看見」已經提交的事務所做的修改

例如乙個事務a開始讀某乙個表是一條資料,另乙個事務b對這個表增加一條資料,並且提交。這時事務a再查詢會發現兩條資料。那麼第乙個事務a兩次讀到的的資料可能是不一樣的,因此稱為是不可重複讀

該級別保證了在同乙個事務中多次讀取同樣記錄的結果是一致的

最高端別,通過強制事務序列執行,避免了幻讀,會在讀取的每一行資料上都加鎖,所以可能導致大量的超時和鎖爭用問題

隔離級別

髒讀可能性

不可重複讀可能性

幻讀可能性

加鎖讀read uncommitted

yesyes

yesno

read committed

noyes

yesno

repeatable read

nono

yesno

serializable

nono

noyes

MySQL 事務隔離級別及ACID

注 begin或start transaction並不是乙個事務的起點,而是在執行它們之後的第乙個操作innodb表的語句,事務才真正開始。start transaction with consistent snapshot命令可以馬上啟動乙個事務。讀未提交 當前事務能讀取到其他事務尚未提交的修改值...

Mysql的ACID 事務併發 事務隔離級別

目錄 一 事務的基本要素 acid a atomicity,即原子性 c consistency,即一致性 i isolation,即隔離性 d durability,即永續性 二 事務的併發問題 1.髒讀 2.不可重複讀 3.幻讀 三 mysql的事務隔離級別 事務開始後的所有操作,要麼全部完成,...

MySQL 事務的ACID 併發問題 隔離級別

小結 不可重複讀的和幻讀很容易混淆,不可重複讀側重於修改,幻讀側重於新增或刪除。解決不可重複讀的問題只需鎖住滿足條件的行,解決幻讀需要鎖表 事務隔離級別 髒讀不可重複讀 幻讀鎖策略 讀未提交 read uncommitted 是是 是不會鎖住指定的行 不可重複讀 read committed 否是 ...