MySQLl的原子性和持久性如何保證?


原子性:undo log

事務是數據庫的邏輯工作單位,而且是必須是原子工作單位,對於其數據修改,要么全部執行,要么全部失敗回滾。

  類似轉賬:A-100,B+100 這兩個操作屬於同一個事務, 要么全部執行,要么全部失敗回滾。

  • undo log記錄了回滾操作的日志,如果要撤銷,按照undo log的回滾日志執行一遍就可以了(保證了原子性)

 

持久性:redo log

指一個事務一旦提交,它對數據庫中的數據的改變就應該是永久性的,即使此時再執行回滾操作也不能撤消所做的更改。

  • 持久性就是用redo log,不是每次都寫入磁盤,而是定期通過redo log把數據刷入磁盤這樣即便斷電后,重啟mysql還是可以恢復


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM