MYSQL自學--從入門到划水(一)

MYSQL自學--從入門到划水(一)

數據庫事務4個特性(ACID)

一、原子性(Atomicity):操做不可分割,要麼完成,要麼不完成。數據庫

二、一致性(Consistency):數據一致性。如A轉帳給B,B增長的數額等於A減小的數額。併發

三、隔離性(Isolation):不一樣操做間互不影響。ide

四、持久性(Durability):記錄須要持久化。如轉帳成功後,就能一直生效,而不是在沒有其餘操做的狀況下,轉帳的操做結果失效。blog

事務是什麼

事務是一個或多個數據庫操做集合。這個操做集合能保證原子性,隔離性,一致性和持久性。事務

數據庫事務的錯誤狀況

一、髒讀:一個事務讀到另外一個事務未提交的數據。ci

二、不可重複讀:事務A在事務B修改或刪除數據並提交先後,各讀取了一次數據,兩次讀取到的數據是不一致的。it

三、幻讀:事務A在事務B新增數據並提交先後,各讀取了一次數據,兩次讀取到的數據不一致。io

事務隔離級別

一、讀未提交(Read Uncommitted):一個事務能讀到另外一個事務未提交的數據,致使髒讀。入門

二、讀已提交(Read Committed):一個事務只能讀到另外一個事務提交了的數據,有不可重複讀和幻讀的問題。table

三、可重複讀(Repeatabled Read):事務A先根據某些條件查詢出了一些數據,以後另外一個事務B又向表中修改了部分符合這些條件的記錄並提交,事務A再次根據該條件查詢時,讀出的仍然是第一次查詢出的數據。但仍然有幻讀問題。

四、串行化(Serializable):事務不能併發操做,只容許串行操做,能防止髒讀、不可重複讀和幻讀問題。

注意:這四種隔離級別是SQL的標準定義,在MYSQL實現中,MYSQL在"Repeatabled Read"隔離級別時,是能夠禁止幻讀問題的發生的。

MYSQL事務相關命令

一、MYSQL開啓事務命令:begin

二、MYSQL提交事務命令:commit

三、MYSQL回滾事務命令:rollback

相關文章
相關標籤/搜索