資料庫事務

2021-10-23 14:29:06 字數 911 閱讀 5902

基本的四大特性:acid

原子性(atomicity):事務作為乙個整體被執行,包含在其中的對資料庫的操作要麼全部被執行,要麼都不執行。

一致性(consistency):事務應確保資料庫的狀態從乙個一致狀態轉變為另乙個一致狀態。一致狀態的含義是資料庫中的資料應滿足完整性約束。

隔離性(isolation):多個事務併發執行時,乙個事務的執行不應影響其他事務的執行。

永續性(durability):乙個事務一旦提交,他對資料庫的修改應該永久儲存在資料庫中。

資料庫**現的一些事務問題:資料庫支援不同的事務隔離級別會對應出現如髒讀、不可重複讀、幻讀等現象。

髒讀: 針對是select,當隔離級別允許不同操作會話可以訪問未提交的資料時,就會出現髒讀。其實就是讀到了別的事務回滾前的髒資料。比如事務b執行過程中修改了資料x,在未提交前,事務a讀取了x,而事務b卻回滾了,這樣事務a就形成了髒讀。

解析:a在事務中讀取了b事務還未提交的資料。
不可重複讀取:針對的是update,當隔離級別設定為允許讀取已提交的資料的時候,就會出現不可重複讀,事務a首先讀取了一條資料,然後執行邏輯的時候,事務b將這條資料改變了,然後事務a再次讀取的時候,發現資料不匹配了,就是所謂的不可重複讀了。

解析:b事務修改發生在a事務還未提交之後。
幻讀:針對的是insert/delete 事務a首先根據條件索引得到n條資料,然後事務b改變了這n條資料之外的m條或者增添了m條符合事務a搜尋條件的資料,導致事務a再次搜尋發現有n+m條資料了,就產生了幻讀。

解析:b事務的delete和insert發生在a事務還沒有提交後。
serializable (序列化):最嚴格的級別,事務序列執行,資源消耗最大。能夠避免上面所有的事務問題,但是這個也是最消耗資源和效能。

資料庫事務

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

資料庫 事務

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

資料庫事務

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