MySQL事務隔離級別 1. 臟讀: 騙錢的手段, 兩個視窗或線程分別調用資料庫轉賬表,轉賬後未提交,對方查看到賬後,rollback,實際錢沒轉. 演示方法: mysql預設的事務隔離級別為repeatable-read 比Oracle高,因為mysql本身弱 使用select @@tx_isol ...
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塊,這就是幻讀,站在開發者的角度,數據的 一致性並沒有破壞。但是在應用程式中,是不可取的,就要採取事務隔離級別“串列化”