資料庫四大特性 隔離級別

2021-08-24 17:50:38 字數 989 閱讀 9521

原子性:要麼全部成功、要麼全部失敗回滾。

隔離性:多個使用者併發的訪問資料庫,或操作同一張表,資料庫為每乙個使用者開啟事務,不能被其他事務干擾,併發事務需要隔離。

一致性:乙個事務從乙個事務執行之前和執行之後都必須處於一致性的狀態。

永續性:乙個事務一旦被提交,那麼對於資料庫中的資料操作是永久性的。

髒讀,乙個事務讀取了

另乙個事務未提交

的資料(例如轉賬,只轉出去,事務失敗未到賬);

不可重複讀,乙個事務多次查詢卻返回了不同的資料庫值,由於在查詢間隔被另乙個事務

修改提交了;

幻讀(虛讀),事務a對乙個表的資料從1修改為2,另乙個事務b又對這個表

新增了一行資料項為1,使用者再看剛剛修改的資料,發現沒有修改;

serializable(序列化):避免髒讀、不可重複讀、幻讀;

repeatable read(可重複讀):只可避免髒讀、不可重複讀發生;

read committed(讀已經提交):只可避免髒讀;

read uncommitted(讀未提交):最低級別,任何情況都無法保證;

上述隔離級別依次降低,級別越高,執行效率越低,serializable類似以鎖表的方式使得其他執行緒只能在鎖外等待;

mysql支援上面的四種隔離級別,預設為repeatable read(可重複讀)

oracle只支援serializable(序列化)和read committed(讀已提交),預設為read committed

mysql查詢隔離級別-----select @@tx_isolation;

mysql設定隔離級別------set tx_isolation='read-uncommitted';

資料庫事務 四大特性 隔離級別

以下引用自 原子性 atomicity 乙個事務要麼全部執行,要麼不執行 一致性 consistency 事務的執行並不改變資料庫中資料的一致性。例如,完整性約束了a b 10,乙個事務改變了a,那麼b也隨之改變 拿轉賬來說,假設使用者a和使用者b兩者的錢加起來一共是5000,那麼不管a和b之間如何...

資料庫事務四大特性 隔離級別

要熟悉事務之前我們先了解一下sql 概念 事務就是一組dml語句組成,這些語句在邏輯上存在關聯性,有要麼全部成功,要麼全部失敗。1 原子性 乙個事務是乙個不可分割的整體,為了保證事務的總體目標,事務必須具有原子性,即當資料修改時,要麼全部執行,要麼全部不執行。即,不允許事務部分的完成,避免了只執行這...

資料庫事務四大特性 隔離級別

以轉賬為例 事務是指滿足acid的一組操作,可以通過commit提交乙個事務,也可以使用rollback進行回滾。1.原子性 atomicity 事務被視為不可分割的最小單元,事務的所有操作要麼全部提交成功,要麼全部失敗回滾。2.一致性 consisitency 資料庫在事務執行前後都保持一致性狀態...