mysql的InooDB存储引擎是如何实现事务的四个特性ACID的

原子性

undolog记录反向操作

  • 对于每一个insert,undolog记录一个delete
  • 对于每一个delete,undolog记录一个insert
  • 对于每一个update,undolog记录一个相反的update

隔离性

四种隔离模式

  • 读未提交:不检查版本号,全读
  • 读已提交:不检查版本号,但检查是否commit
  • 可重复读:只读版本号小于等于当前版本号的记录
  • 串行:事务加锁,其他事务等待

持久性

innodb_flush_log_at_trx_commi设置为1,事务提交记录redolog,定期fsync刷盘,如果宕机重启时通过undolog恢复

一致性

undolog+redolog ,保证所有操作同时提交和回滚。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章