1、為什么需要事務機制
避免寫入直接操作數據文件,寫入直接操作數據文件是一件非常危險的事情,遇到突發事故,沒有數據文件對比無法還原。mysql五種日志文件,其中只有undo和redo日志與事務有關。拷貝數據記錄在
redo日志里面,記錄修改記錄在undo日志里面。
2、事務機制
事務是一組sql語句當做一個整體要么全部成功要么全部失敗。
3、利用日志實現間接寫入
先從數據庫文件拷貝數據到undo日志,記錄修改到redo日志,如果沒有問題就同步數據到數據庫文件。
開啟事務,UPDATE語句,DELETE語句 提交事務。日志操作流程如下,拷貝數據到UNdo日志,update,delete后寫入redo日志,undo日志可以用來恢復數據庫,redo日志用來修改數據庫。
4、事務ACID特性
原子性要么都成功要么都失敗不允許停留在某個狀態。事務一致性,innodb允許並發執行事務,不管任何給定時間,並發事務有多少,事務必須保證運行結果一致性。隔離性要求事務不受其他事務的影響,
默認情況下A事務,只能看到日志中該事務的數據。持久性,事務一旦提交,結果便是永久性的。即便是宕機了,依然可以依靠事務日志完成數據的持久化。