MySQL總結 十三 資料庫事務隔離級別 概述

2021-10-07 22:18:40 字數 1132 閱讀 5250

精選30+雲產品,助力企業輕鬆上雲!>>>

事務特性

含義原子性(atomicity)

每個事務都是乙個整體,不可再拆分,事務中所有的sql語句要麼全部執行成功,要麼全部執行失敗。

一致性(consistency)

事務在執行前資料庫的狀態與執行後資料庫的狀態保持一致。如:轉賬前2 個人的總金額是 2000 ,轉賬後 2 個人總金額也是 2000

隔離性事務與事務之間不應該相互影響,執行時保持隔離的狀態。

永續性一旦事務執行成功,對資料庫的修改是持久的。就算關機,也是儲存下來的。

所有的事務之間保持隔離,互不影響。因為併發操作,多個使用者同時訪問同乙個資料。

併發訪問的問題

含義髒讀

乙個事務讀取到了另乙個事務中尚未提交的資料

不可重複讀

乙個事務中兩次讀取的資料 內容 不一致,要求的是乙個事務中多次讀取時資料是一致的, 這是事務 update 時引發的問題

幻讀乙個事務中兩次讀取的資料的 數量 不一致,要求在乙個事務多次讀取的資料的數量是一致的,這是 insert 或 或 delete 時引發的問題

上面的級別最低,下面的級別最高。「是」表示會出現這種問題,「否」表示不會出現這種問題。

級別名字

隔離級別

髒讀不可重複讀

幻讀資料庫預設隔離級別

1讀已提交

read uncommitted是是

是2讀未提交

read committed否是

是oracle和sql server

3可重複讀

repeatable read否否

是mysql

4序列化

serializable否否

隔離級別越高,效能越差,安全性越高。

查詢隔離級別: select @@tx_isolation;

設定隔離級別: set global transaction isolation level 級別字串;

資料庫事務的隔離級別和MySql事務的隔離級別

髒讀是指,乙個事務的處理過程中讀取到了另乙個未提交的事務中的資料。不可重複讀指,在乙個範圍內,多次查詢去返回了不同的資料值,這是由於在查詢間隔,被另乙個事務修改並提交了。虛讀 幻讀 指,乙個事務對一批資料的name欄位做出全部修改後 將該字段的值從a改為b 未提交事務 此時另乙個事務又新增了一條資料...

Spring 事務傳播機制和資料庫的事務隔離級別

propagation 事務傳播屬性 類別傳播型別 說明支援當前事務 required 如果當前沒有事務,就新建乙個事務。transaction的預設選擇 支援當前事務 supports 就以非事務的方式執行。支援當前事務 mandatory 如果當前沒有事務,就丟擲異常。不支援當前事務 requi...

資料庫事務總結

資料庫併發訪問會出現以下4種問題 1 第一類丟失更新 事務b巢狀在事務a中,事務b已經更新,之後事務a更新失敗,a回滾,丟失了b的更新。支援事務的資料庫不會出現此問題 2 髒讀 讀到其他事務還未提交的資料。3 不可重複讀 在同一事務中,兩次讀取的資料不一致。被其他事務修改了 4 幻讀 兩次讀取的記錄...