資料庫 事務(二)

2021-10-04 11:48:48 字數 875 閱讀 9223

事務特性(acid)

我們先看一下資料庫的隔離級別:

修改隔離級別的語句:set global transaction isolation level 隔離級別

檢視隔離級別:select @@tx_isolation

mysql預設採用repeatable read重複度隔離級別。

oracle預設採用read committed讀已提交的隔離級別。

什麼是髒讀?

如果兩個事務併發執行,乙個事務讀取了另乙個事務沒有提交的資料。事務b讀取事務a執行的表,然後事務a回滾,事務b則讀出的資料時髒資料,稱為髒讀。

什麼是不可重複讀

事務a多次讀取同乙個資料,事務b在事務a多次讀取資料的時候,對資料進行修改,導致事務a多次讀到的資料不一致。

什麼是幻讀?

事務a與事務b同時操作一張表,事務a對該錶的增加或刪除操作,事務b是讀不到的,類似於事務b在讀資料之前對該錶增加了乙個標記,標記該錶只能讀取到該標記的位置,後面資料表發生改變則讀取不到。導致讀取的資料與資料表的資料不一致。

不可重複讀側重對資料庫的修改,幻讀側重對資料庫的增加,解決不可重複讀需要鎖滿足的條件,幻讀我們需要進行鎖表。

隔離級別的效率:

讀未提交的(read uncommitted)> 讀已提交的(read committed)> 不可重複讀(repeatable read)> 序列化(serializable)

資料庫中如何實現隔離級別

資料庫事務二

事務級別 第 3 頁 共5 頁 為了解決與 多個執行緒請求相同資料 相關的問題,事務之間用鎖相互隔開。多數主流的資料庫支援不同型別的鎖 因此,jdbc api 支援不同型別的事務,它們由connection物件指派或確定。在 jdbc api 中可以獲得下列事務級別 您可能想知道,為什麼不是所有事務...

事務處理(二) 資料庫事務

事務的作用是將一系列操作作為乙個整體,一但其中出現問題,會回滾到事務的開始狀態。即事務維護了資料的完整性和一致性。如果不考慮隔離性,事務會出現以下問題。髒讀又稱無效資料的讀出,是指在資料庫訪問中,事務t1將某一值修改,然後事務t2讀取該值,此後t1因為某種原因撤銷對該值的修改,這就導致了t2所讀取到...

理解MySQL(二) 資料庫事務

1 事務 事務內的語句,要麼全部執行成功,要麼全部執行失敗。a 資料庫事務四要素 acid,原子性,一致性,隔離性,永續性。b 原子性 乙個事務必須被視為不可分割的最小單元。c 一致性 資料庫是從乙個一致性狀態轉換到另外乙個一致性狀態。d 隔離性 乙個事務所做的修改在最終提交前,對其他事務是不可見的...