事務的特性和隔離級別
1.事務的特性
1>原子性(atomicity)原子性是指事務是乙個不可分割的工作單位,事務中的操作要麼都發生,要麼都不發生。
2>一致性(consistency)乙個事務中,事務前後資料的完整性必須保持一致。
3>隔離性(isolation)多個事務,事務的隔離性是指多個使用者併發訪問資料庫時, 乙個使用者的 事務不能被其它使用者的事務所干擾,多個併發事務之間資料要相互隔離。
4>永續性(durability)永續性是指乙個事務一旦被提交,它對資料庫中資料的改變就是永久性的,接下來即使資料庫發生故障也不應該對其有任何影響。
2.併發訪問問題----由隔離性引起
1>髒讀:b事務讀取到了a事務尚未提交的資料 ------ 要求b事務要讀取a事 務提交的資料
2>不可重複讀:乙個事務中 兩次讀取的資料的內容不一致 ------要求的是乙個事 務中多次讀取時資料是一致的 --- unpdate
3>幻讀/虛讀:乙個事務中 兩次讀取的資料的數量不一致 ------要求在乙個事務多 次讀取的資料的數量是一致的 --insert delete
3.事務的隔離級別
1)read uncommitted : 讀取尚未提交的資料 :哪個問題都不能解決
2)read committed:讀取已經提交的資料 :可以解決髒讀 ---- oracle預設的
3)repeatable read:重讀讀取:可以解決髒讀 和 不可重複讀 ---mysql預設的
4)serializable:序列化:可以解決 髒讀 不可重複讀 和 虛讀---相當於鎖表
4.mysql對read uncommitted 和read committed 的驗證
設定sql的事務隔離級別:set session transaction isolation level read uncommitted;
開啟 sql1 和sql2
sql1
sql2
sq1開啟執行緒並修改表中資料 但是不提交
sql2查詢表資料查到了 sql1中未提交的資料
sql2出現重複讀(再一次事務中兩次查到的資料不同)
事務的特性和隔離級別
1.原子性 指事務必須是原子工作單元,對於其資料修改,要麼全都執行,要麼全都不執行。2.一致性 指事務在完成時,必須使所有的資料都保持一致狀態。3.隔離性 指由併發事務所做的修改必須與任何其他併發事務所做的修改隔離。4.永續性 指事務完成之後,對於系統的影響具有永久性。事務隔離級別的含義 是否在讀資...
事務的特性和隔離級別
只要跟資料庫打交道,肯定離不開事務,那什麼是事務呢?簡單來說,事務就是要保證一組對資料庫的操作,要麼成功,要麼失敗。對於mysql而言,事務是在引擎層實現的,mysql原生的myisam是不支援事務的,這也是myisam 被innodb取代的原因之一。事務有四種特性,分別是原子性 atomicity...
事務的特性和隔離級別
事務特性 原子性 atomicity 原子性是指事務包含的所有操作要麼全部成功,要麼全部失敗回滾,一致性 consistency 一致性是指事務必須使資料庫從乙個一致性狀態變換到另乙個一致性狀態,也就是說乙個事務執行之 前和執行之後都必須處於一致性狀態。隔離性 isolation 隔離性是當多個使用...