1. 程式人生 > >事務的隔離級別-(關系型數據庫)

事務的隔離級別-(關系型數據庫)

數據 並發訪問 範圍 serial 事務處理 serializa 之前 zab nco

一、事務具有以下ACID特性:
原子性(Atomictiy):原子性是指事務包含的所有操作要麽全部成功,要麽全部失敗回滾,因此事務的操作如果成功就必須要全部應用到數據庫,如果操作失敗則不能對數據庫有影響。
一致性(Consistency):一致性是指事務必須使數據庫從一個一致性狀態變換到另一個一致性狀態,也就是說一個事務執行之前和執行之後都必須處於一致性狀態。
隔離性(Isalation):當多個用戶並發訪問數據庫時,比如操作同一張表時,數據庫為每一個用戶開啟的事務,不能被其他的事務的操作所幹擾,多個並發事務之間要相互隔離。
持久性(Durability):是指一個事務一旦被提交了,那麽對數據庫中的數據的改變是永久的,即便是在數據庫系統遇到故障的情況下也不會丟失提交事務的操作。

二、不考慮事務隔離級別,會出現什麽問題?
1.臟讀:是指一個事務處理過程中讀取了另一個未提交的事務中的數據。
2.不可重復讀:是指在對於數據庫中的某個數據,一個事務範圍內多次查詢卻返回了不同的數據值,這是由於在查詢間隔,被另一個事務修改並提交了。
3.幻讀:是事務非獨立執行時發生的一種現象。

三、四種隔離級別說明
1.串行化(serializable):可避免臟讀,不可重復讀,幻讀的發生。(最高級別,執行效率越低)
2.可重復讀(Repeatable Read):可避免臟讀,不可重復讀的發生。(MySQL默認隔離級別)
3.讀已提交(Read committed):可避免臟讀的發生。(讀已提交)
4.讀未提交(Read uncommitted):最低級別,任何情況都無法保證。

***敲重點,必須得記會。記住,別人幫你,你就得努力啊~

事務的隔離級別-(關系型數據庫)