事務
transaction 其實指的一組操作,裡面包含許多個單一的邏輯。只要有乙個邏輯沒有執行成功,那麼都算失敗。 所有的資料都回歸到最初的狀態(回滾)
* 為什麼要有事務?
為了確保邏輯的成功。 例子: 銀行的轉賬。
指的是 事務中包含的邏輯,不可分割。
指的是 事務執行前後。資料完整性
指的是 事務在執行期間不應該受到其他事務的影響
指的是 事務執行成功,那麼資料應該持久儲存到磁碟上。
不考慮隔離級別設定,那麼會出現以下問題。
髒讀 不可重讀讀 幻讀.
* 髒讀
> 乙個事務讀到另外乙個事務還未提交的資料
* 不可重複讀
> 乙個事務讀到了另外乙個事務提交的資料 ,造成了前後兩次查詢結果不一致。
讀未提交 演示
設定a視窗的隔離級別為 讀未提交
2兩個視窗都分別開啟事務
丟失更新讀已提交演示
設定a視窗的隔離級別為 讀已提交
a b 兩個視窗都開啟事務, 在b視窗執行更新操作。
在a視窗執行的查詢結果不一致。 一次是在b視窗提交事務之前,一次是在b視窗提交事務之後。
在a視窗執行的查詢結果不一致。 一次是在b視窗提交事務之前,一次是在b視窗提交事務之後。
事務 學習筆記
講解事務前我們先來看一張圖 這張圖講述了資料庫的隔離級別和預防髒讀 不可重複讀,幻讀的對應關係。那麼mysql 預設的資料庫隔離級別是repeatable read 這個級別下就不會出現髒讀和不可重複讀。而oracle和sqlserver 的預設隔離級別是 read committed 這種級別不會...
學習筆記1 事務
一 事務的四大特性 1.原子性 atomicity 事務中所有操作是不可再分割的原子單位,事務中所有的操作要麼全部執行,要麼全部執行失敗。2.一致性 consistency 事務執行後,資料庫狀態與其他業務規則保持一致。eg 轉賬業務,無論事務執行成功與否,參與轉賬的雙方餘額之和應該是不變的。3.隔...
事務(Transaction)學習筆記
基於原部落格而寫的筆記。是指作為單個邏輯工作單元執行的一系列操作,要麼完全地執行,要麼完全地不執行。事務處理可以確保除非事務性單元內的所有操作都成功完成,否則不會永久更新面向資料的資源。通過將一組相關操作組合為乙個要麼全部成功要麼全部失敗的單元,可以簡化錯誤恢復並使應用程式更加可靠。乙個邏輯工作單元...