隔離級別
該級別會出現的問題
解釋read uncommitted
讀未提交
就是乙個事務可以讀取另乙個未提交事務的資料
read committed
讀已提交
就是乙個事務要等另乙個事務提交後才能讀取資料
repeatable read
可重複讀
重複讀,就是在開始讀取資料(事務開啟)時,不再允許修改操作
serializable
可序列化
事務安順序序列執行
那怎麼解決髒讀呢?read committed!讀提交,能解決髒讀問題。
那怎麼解決可能的不可重複讀問題?repeatable read !
什麼時候會出現幻讀?
事例:程式設計師某一天去消費,花了2千元,然後他的妻子去檢視他今天的消費記錄(全表掃瞄fts,妻子事務開啟),看到確實是花了2千元,就在這個時候,程式設計師花了1萬買了一部電腦,即新增insert了一條消費記錄,並提交。當妻子列印程式設計師的消費記錄清單時(妻子事務提交),發現花了1.2萬元,似乎出現了幻覺,這就是幻讀。
那怎麼解決幻讀問題?serializable!
注意: 大多數資料庫預設的事務隔離級別是read committed,比如sql server , oracle。mysql的預設隔離級別是repeatable read。
事務的ACID特性與隔離級別
事務所提供的安全保證,通常由眾所周知的首字母縮略詞acid來描述,acid代表原子性 atomicity 一致性 consistency 隔離性 isolation 和永續性 durability 乙個事務是乙個不可分割的工作單位,其中的操作要麼都做,要麼都不做。特徵是能夠在錯誤時終止事務,丟棄該事...
MySQL事務 特性 隔離級別
簡單來說事務就是要麼全都成功,要麼全部失敗的一組語句 事務的四種隔離級別 讀未提交 read committed 讀已提交 read uncommitted 可重複讀 repeatable read 可序列化 serializable 1.讀未提交 兩個事務同時操作乙個表,其中乙個事務修改了表中的資...
Spring 事務隔離級別與傳播特性
1.原理 a.spring事務的本質就是資料庫對事務的支援,沒有資料庫事務的支援,spring是無法提供事務功能的 b.純jdbc操作步驟 獲取連線 connection conn drivermanager.getconnection 開啟事務 conn.setautocommit true fa...