MySQL--->事務

arize發表於2020-10-23

事務定義

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

事務的隔離級別

在這裡插入圖片描述
讀未提交:存在髒讀,不可重複讀,幻讀
讀已提交:解決髒讀
可重複讀:解決髒讀與不可重複讀
序列:強制事務排序,使之不可能相互衝突,解決所有問題

  • 髒讀:一個事務A對資料進行修改還未提交,這時另一個事務B進行讀取,讀到了還未提交的資料。如果事務A再提交前又進行修改,就會導致B所讀資料不正確。
  • 不可重複讀:一個事務範圍內兩個相同的查詢卻返回了不同資料。可能是在查詢中另一個事務對資料進行了修改。
  • 幻讀:一個事務(同一個read view)在前後兩次查詢同一範圍的時候,後一次查詢看到了前一次查詢沒有看到的行。

事務的特性

  • 原子性:事務是應用中不可再分的最小邏輯執行體。
  • 隔離性:各個事務的執行互不干擾,任意一個事務的內部操作對其他併發事務都是隔離的。
  • 一致性:事務執行的結果,必須使資料庫從一個一致性狀態,變到另一個一致性狀態。
  • 永久性:指一個事務一旦被提交,它對資料庫所做的改變都要記錄到永久儲存中。

相關文章