資料庫事務

2021-07-26 21:40:03 字數 622 閱讀 7055

我們的資料庫

mysql資料庫為我們提供的四種隔離級別:

① serializable (序列化):可避免髒讀、不可重複讀、幻讀的發生。

② repeatable read (可重複讀):可避免髒讀、不可重複讀的發生。

③ read committed (讀已提交):可避免髒讀的發生。

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

mysql 的預設事務級別是: repeatable read

oracle的預設事務級別是:read committed

檢視資料庫的事務級別命令是:select @@tx_isolation ;

「髒讀」比較好區別,現在看看「不可重複」和「幻讀」的區別:

不可重複讀的重點是修改:

同樣的條件, 你讀取過的資料, 再次讀取出來發現值不一樣了

幻讀的重點在於新增或者刪除

同樣的條件, 第1次和第2次讀出來的記錄數不一樣

當然, 從總的結果來看, 似乎兩者都表現為兩次讀取的結果不一致.

但如果你從控制的角度來看, 兩者的區別就比較大

對於前者, 只需要鎖住滿足條件的記錄

對於後者, 要鎖住滿足條件及其相近的記錄

資料庫事務

事件是訪問並可能更新各種資料項的乙個程式執行單元。事件由事務開始與事務結束之間執行的全體操作組成。為了保證資料完整性,資料庫系統需要維護事務的以下性質 原子性 atomicity 事務中的操作要麼全部成功,要麼全部失敗。一致性 consistency 事務執行前後要保持資料庫的一致性。隔離性 iso...

資料庫 事務

資料庫事務 database transaction 是指作為單個邏輯工作單元執行的一系列操作。事務處理可以確保除非事務性單元內的所有操作都成功完成,否則不會永久更新面向資料的資源。通過將一組相關操作組合為乙個要麼全部成功要麼全部失敗的單元,可以簡化錯誤恢復並使應用程式更加可靠。乙個邏輯工作單元要成...

資料庫事務

這段時間面試,由於基礎不是特別好,遇到一些要筆試的公司。就會表示出來 今天有人問我,資料庫事務 是什麼。我只感覺十分熟悉。但是又說不出所以然。回來找了一下,現在整理記錄 1 定義 資料庫事務 database transaction 是指作為單個邏輯工作單元執行的一系列操作。事務處理可以確保除非事務...