數據庫事務複習

數據庫事務四大特性 ACID

  • Atomicity 原子性:事務所包含的操做是所有成功,或者所有失敗回滾。
  • Consistency 一致性:事務先後數據從一個一致性狀態變到另外一個一致性狀態。
  • Isolation 隔離性:事務和事務之間要隔離
  • Durability 持久性:事務提交以後,要保證數據不會由於斷電等問題致使改變。

事務不進行隔離會產生的問題:

  1. 髒讀。 一個事務讀取到另一個還未提交的事務的數據mysql

  2. 不可重複讀 一個事務內屢次讀取受到另一個事務已經提交的數據。一個事務內屢次讀取一個數據不一致。由於另一個事務提交致使數據變化。spring

  3. 一個事務內讀到另外事務插入的數據 讀取表的行數,受到另一個事務影響!!sql

數據庫隔離級別:

  1. read uncommitted 讀未提交 能夠讀到未提交的事務數據
  2. read committed 讀已提交 解決髒讀問題 能夠讀到已提交的事務數據
  3. repeatable read 可重複讀
    解決不可重複讀問題 mysql默認,InnoDB經過MVCC多版本併發控制解決幻讀問題
  4. serializable 可串行話
    解決幻讀問題 強制事務排序執行

spring傳播機制6個

  • requeried 支持當前事務,若是當前沒有事務,則新建事務。數據庫

  • supports 支持當前事務,若是當前沒有事務,則不新建事務。併發

  • mandatory 支持當前事務,若是當前沒有事務,則拋出異常。排序

  • requeried_new 掛起當前事務,以新事務運行事務

  • not_support 掛起事務,以非事務運行ci

  • never 若是有事務則拋出異常it

  • nested 若是存在事務,新起事務做爲子事務。上面事務完成才能提交。若是不存在事務,則新起一個事務,io

相關文章
相關標籤/搜索