Mysql中事物及隔離級別

什麼叫事務

事務就是一組sql組成的操做單元,要麼操做所有成功,要麼所有失敗。sql

ACID屬性

原子性(atomicity)

一個事物必須被視爲一個不可分割的最小工做單元,整個事務要麼所有成功,要麼所有失敗回滾,對一個事物來講,不可能只執行其中的一部分操做。數據庫

一致性(consistency)

數據庫老是從一個一致的狀態轉換到另一個一致的狀態。好比總共兩個update,在第一個update後,系統崩潰了,也不會對數據有影響,由於事務沒提交。併發

隔離性(isolation)

一個事務所作的修改在最終提交之前,對其餘事務是不可見。ide

持久性(durability)

一旦事務提交,則所作的修改就會永久保存到數據庫中。atom

事務隔離級別

併發事務帶來的問題:事務

  • 髒讀
    事務能夠讀取未提交的數據,叫髒讀。
  • 不可重複讀
    一個事務開始時,只能讀取已經提交事務所作的修改。換句話說,一個事務從開始直到提交以前,所作的任何修改對其餘事務都是不可見的。執行兩次一樣的查詢,可能會獲得不同的結果。
  • 幻讀
    是指當某個事務讀取某個範圍內的記錄時,另一個事務在該範圍內插入了新的記錄,當以前的事務再次讀取該範圍的記錄時,會產生幻行。
隔離級別 髒讀可能性 不可重複讀可能性 幻讀可能性
read uncommitted Yes Yes No
read committed No Yes Yes
repeatable read No No Yes
serializable No No No
相關文章
相關標籤/搜索