mysql隔離級別 mysql事務及隔離級別

2021-10-18 08:14:41 字數 1339 閱讀 5693

這是關於php高階到架構之mysql高階學習的第篇文章:mysql事務及隔離級別

乙個最小的不可再分的工作單元;通常乙個事務對應乙個完整的業務(例如銀行賬戶轉賬業務,該業務就是乙個最小的工作單元)

1、原子性(atomicity):

事務開始後所有操作,要麼全部做完,要麼全部不做。也就是說事務是乙個不可分割的整體,就像化學中學過的原子,是物質構成的基本單位。

2、一致性(consistency):

事務開始前和結束後,資料庫的完整性約束沒有被破壞 。

比如a向b轉賬,不可能a扣了錢,b卻沒收到。

3、隔離性(isolation):

同一時間,只允許乙個事務請求同一資料,不同的事務之間彼此沒有任何干擾。

比如a正在從一張銀行卡中取錢,在a取錢的過程結束前,b不能向這張卡轉賬。

4、永續性(durability):

事務完成後,事務對資料庫的所有更新將被儲存到資料庫,不能回滾。

1、髒讀:

事務a讀取了事務b更新的資料,然後b回滾操作,那麼a讀取到的資料是髒資料

2、不可重複讀:

事務 a 多次讀取同一資料,事務 b 在事務a多次讀取的過程中,對資料作了更新並提交,導致事務a多次讀取同一資料時,結果不一致。

3、幻讀:

系統管理員a將資料庫中所有學生的成績從具體分數改為abcde等級,但是系統管理員b就在這個時候插入了一條具體分數的記錄,當系統管理員a改結束後發現還有一條記錄沒有改過來,就好像發生了幻覺一樣,這就叫幻讀

小結:

不可重複讀的和幻讀很容易混淆,

不可重複讀側重於修改

幻讀側重於新增或刪除(條數不同)。

隔離級別小結:

(1)不可重複讀解決髒讀問題

(2)可重複讀解決髒讀、不可重複讀問題

(3)序列化解決髒讀、不可重複讀和幻讀問題

(4)隔離級別越高,越能保證資料的完整性和一致性,但是對併發效能的影響也越大

mysql預設的事務隔離級別為可重複讀(repeatable-read)

mysql隔離級別 MySQL 事務隔離級別

mysql innodb所提供的事務滿足acid的要求,事務是通過事務日誌中的redo log和undo log來實現原子性 undo log 一致性 undo log 永續性 redo log 事務通過鎖機制實現隔離性。1 事務隔離級別與實現read uncommitted 讀未提交 read c...

mysql隔離級別驗證 mysql 隔離級別測試

1 設定隔離級別,包括 全域性 global.tx isolation,會話級別 session.tx isolation mysql workbench的會話 2 建立測試表 注意 unsigned auto increment primary key用法 預設引擎的設定 建立測試表 use te...

Mysql隔離級別

先記錄下幾個概念 髒讀 在當前事務中,讀取到其他事務中還未提交的資料 不可重複讀 在當前事務中,讀取某一行的資料,可能讀出的資料不同 幻讀 在當前事務中,讀取記錄時,另外的事務插入了新的記錄,當前事務可能出現新的行。四種隔離級別 1.未提交讀 可能讀到髒資料 會話a中的隔離級別為未提交讀 表中原來的...