事務的特點(acid):
原子性:要麼全部成功,要麼全部失敗
一致性:事務的執行結果必須使資料庫從乙個一致性狀態到另乙個一致性狀態。一致性狀態是指:1、系統狀態滿足資料的完整性的約束;2、系統的狀態反應資料庫本應描述的現實世界的真是狀態,比如轉賬前後兩個賬戶的金額總和保持不變
隔離性:併發執行的事務不會互相影響,對資料庫的影響和他們序列執行時一樣
永續性:事務一旦提交,對資料庫的更新是持久的,任何事務或系統故障都不會導致資料丟失。
原子性的實現原理:undo log(回滾日誌)
undo log是為了實現事務的原子性,在mysql資料庫innodb儲存引擎中,還用undo log來實現多版本併發控制;
在運算元據庫之前,首先將資料備份到乙個地方(儲存資料備份的地方稱為undo log)然後進行資料的修改,如果出現了錯誤或使用者執行了回滾語句,系統可以利用undo log中的備份將資料恢復到事務開始之前的狀態
1、當你delete一條資料的時候,就需要記錄這條資料的資訊,undo log會記錄一條insert
2、當你update一條資料的時候,就需要記錄之前的舊值,undo log會記錄一條相反update操作
3、當年insert一條資料的時候,就需要這條記錄的主鍵,undo log會記錄一條delete操作
永續性實現原理:redo log
跟undo log相反,redo log記錄的是新資料的備份。在事務提交前,只要將redo log持久化即可,不需要將資料持久化,當系統崩潰時,雖然資料沒有持久化,但是redo log已經持久化。系統可以根據redo log 的內容,將所有資料恢復到最新的狀態
事務及四大特性
什麼是事務 簡單的說,事務 就是將一堆的sql語句的執行,繫結在一起,要麼全部執行成功,要麼全部執行失敗 以轉賬為例 現有a,b兩個賬戶,金額都是1000元,現在a要轉賬給b 100元 update acc set money money 100 where name a update acc se...
事務四大特性
1 原子性 將事務中所做的操作 成乙個原子單元,即對於事務所進行的資料修改等操作,要麼全部執行,要麼全部不執行。2 一致性 事務執行的結果必須是使資料庫從乙個一致性狀態變到另乙個一致性狀態。事務在完成時,必須使所有的資料都保持一致狀態,而且在相關資料中,所有規則都必須應用於事務的修改,以保持所有資料...
事務四大特性
資料庫事務有四大特性,分別是 原子性 一致性 隔離性和永續性。原子性 atomicity 事務是資料庫的邏輯工作單位,它對資料庫的修改要麼全部執行,要麼全部不執行。一致性 consistemcy 事務前後,資料庫的狀態都滿足所有的完整性約束。隔離性 isolation 併發執行的事務是隔離的,乙個不...