MySQL事務隔離級別 解決並發問題


MySQL事務隔離級別

1. 臟讀: 騙錢的手段, 兩個窗口或線程分別調用數據庫轉賬表,轉賬后未提交,對方查看到賬后,rollback,實際錢沒轉.

演示方法:

mysql默認的事務隔離級別為repeatable-read 比Oracle高,因為mysql本身弱

使用select @@tx_isolation; 進行查看

使用

調整到最低級別

使用 start transaction; 開啟事務 rollback; 回滾

2. 不可重復讀: 事務 A 多次讀取同一數據,事務 B 在事務A多次讀取的過程中,對數據作了更新並提交,導致事務A多次讀取同一數據時,結果 不一致。

3. 在客戶端A計算表中money之和,三個數據值和本應為為300+16000+2400=18700,可計算后,居然變成了19300,這是因為把客戶端B的600算進去了

,站在客戶的角度,客戶是看不到客戶端B的,它會覺得是天下掉餡餅了,多了600塊,這就是幻讀,站在開發者的角度,數據的 一致性並沒有破壞。但是在應用程序中,是不可取的,就要采取事務隔離級別“串行化”

轉自:https://www.cnblogs.com/qingyundian/p/8613637.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM