mysql隔离级别验证_MySQL事务隔离级别以及验证
查詢初始數(shù)據(jù)
開啟A事務 并做更新操作
再另一端 B開始另一個事務查詢 事務級別設置為讀未提
查詢到事務未提交的數(shù)據(jù)? a的count修改為3 但是沒有提交
2 第二個級別 讀已提交 避免臟讀問題 但是有不可重復讀問題
回滾數(shù)據(jù) 修改隔離級別 確保都是 讀已提交級別
客戶端A
客戶端B
驗證 臟讀問題
客戶端A
客戶端B? 查詢出結果 沒有臟讀問題
A提交事務 B再查詢
測試不可重復讀問題
A客戶端 開始事務 先進行一次查詢 仍然設置為讀已提交的隔離級別
此時 A客戶端 沒有提交事務 開啟B客戶端 做更新操作
此時A客戶端再次查詢 結果不一樣? 在一個事務中 兩次查詢不一樣
3 第三個級別 可重復讀? 避免 不可重復讀問題;
確保客戶端A 和 客戶端B都是 可重復讀的隔離級別
客戶端A 第一次查詢
客戶端B 開啟事務 并更新 然后 提交事務
這時 客戶端A 再次查詢數(shù)據(jù) 仍然是15 所以 避免了不可重復讀的問題
測試幻讀問題
同樣保持之前的數(shù)據(jù) 客戶端B開始事務 插入數(shù)據(jù)
客戶端B
此時 客戶端A再次查詢 還是一樣
經(jīng)過查詢? 據(jù)說來源于 MySQL技術內(nèi)幕 :InnoDB存儲引擎
之前提到一般情況下MySQL的InnoDB引擎在可重復讀的情況下是沒法保證不出現(xiàn)幻讀的,但實際情況是MySQL可以通過加鎖來防止幻讀的出現(xiàn),這種鎖定通過Next-key機制來實現(xiàn),是屬于記錄鎖和間隙鎖(Gap鎖)的結合。
《MySQL技術內(nèi)幕:InnoDB存儲引擎》-第六章:鎖
總結
以上是生活随笔為你收集整理的mysql隔离级别验证_MySQL事务隔离级别以及验证的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 同花顺电脑版怎么登录(同花顺电脑版怎么登
- 下一篇: php baocuo error,PHP