事務:是資料庫管理系統的執行單元,可以是乙個資料庫操作或者一組資料庫操作序列。
事務的acid屬性,原子性(atomicity),一致性(consistency),隔離性(isolation),持續性(durability)。
原子性:事務中所有的資料庫操作要麼全部成功,要麼全部失敗。如現實生活中的轉賬操作。
一致性:保證資料庫資料始終一致(事務操作前,事務操作後)。
隔離性:多個事務併發執行的結果應該和序列執行的效果是一致的。顯然最簡單的隔離就是將所有的事務都序列執行,先來的先執行,但是這樣子效率會很低下。如果多個事務只是讀取同一批資料,完全可以併發進行。為了控制併發執行的效果就有了不同的隔離級別。
持續性:事務對資料庫的影響應該是持久的,即使資料庫因故障收到破壞,也能進行恢復。
隔離級別(transaction isolation level),對事務併發控制的等級。分為序列化(serializable),可重複讀(repeatable read),讀已提交(read committed),讀未提交(read uncommitted)。
[color=darkred][b]測試讀未提交[/b][/color]
[img]
[b]客戶端1[/b]
[img]
[b]客戶端2[/b]
[img]
[b]在「讀未提交」隔離級別下,也會存在幻讀(phantom read),即客戶端2第二次查詢之前,客戶端1插入了一條新的記錄,客戶端2第二次查詢的時候就會將這條幻影資料顯示出來。[/b]
[color=darkred][b]測試讀已提交[/b][/color]
[b]客戶端1[/b]
[img]
[b]客戶端2[/b]
[img]
[color=darkred][b]測試可重複讀[/b][/color]
[b]客戶端2[/b]
[img]
[color=darkred][b]測試序列化[/b][/color]
[b]客戶端1[/b]
[img]
[b]客戶端2[/b]
[img]
資料庫事務
事件是訪問並可能更新各種資料項的乙個程式執行單元。事件由事務開始與事務結束之間執行的全體操作組成。為了保證資料完整性,資料庫系統需要維護事務的以下性質 原子性 atomicity 事務中的操作要麼全部成功,要麼全部失敗。一致性 consistency 事務執行前後要保持資料庫的一致性。隔離性 iso...
資料庫 事務
資料庫事務 database transaction 是指作為單個邏輯工作單元執行的一系列操作。事務處理可以確保除非事務性單元內的所有操作都成功完成,否則不會永久更新面向資料的資源。通過將一組相關操作組合為乙個要麼全部成功要麼全部失敗的單元,可以簡化錯誤恢復並使應用程式更加可靠。乙個邏輯工作單元要成...
資料庫事務
這段時間面試,由於基礎不是特別好,遇到一些要筆試的公司。就會表示出來 今天有人問我,資料庫事務 是什麼。我只感覺十分熟悉。但是又說不出所以然。回來找了一下,現在整理記錄 1 定義 資料庫事務 database transaction 是指作為單個邏輯工作單元執行的一系列操作。事務處理可以確保除非事務...