1. 程式人生 > >事務2 mysql事務,

事務2 mysql事務,

mysql事務隔離級別

  • 髒讀
  • 事務A讀取了事務B更新的資料,然後B回滾操作,那麼A讀取到的資料是髒資料
  • 不可重複讀
  • 事務 A 多次讀取同一資料,事務 B 在事務A多次讀取的過程中,對資料作了更新並提交,導致事務A多次讀取同一資料時,結果 不一致。
  • 幻讀
  • 系統管理員A將資料庫中所有學生的成績從具體分數改為ABCDE等級,但是系統管理員B就在這個時候插入了一條具體分數的記錄,當系統管理員A改結束後發現還有一條記錄沒有改過來,就好像發生了幻覺一樣,這就叫幻讀。
事務隔離級別 髒讀 不可重複讀 幻讀
讀未提交(read-uncommitted)
不可重複讀(read-committed)
可重複讀(repeatable-read)
序列化(serializable)

 

分散式事務作用

保證不同節點的資料一致性

XA分散式事務協議

2pc(兩階段遞交)

通俗理解

類似於 吃雞遊戲四排時組隊,必須所有隊員全部準備才能開

兩階段遞交過程

第一階段(準備階段)

  • 事務中有兩個角色,一個是協調者,一個是參與者
  • 協調者會向參與者傳送 事務準備請求
  •  
  • 各個參與者會準備事務提交的相關資料,返回是否準備好了。進入第二階段
  • 個人理解

  • 試探性的提交

第二階段(提交階段)

  • 如果都準備好了,則進行遞交操作,如果失敗了,則執行回滾
  • 協調者會向參與者傳送提交請求
  • 參與者會提交本地事務,並返回完成
  • 當事務協調者收到所有的參與者提交完成,則完成分散式事務完成