我们知道在SQL服务器中,事务日志文件包含重做日志和撤消日志,但是在MYSQL事务日志中,它只包含撤销日志,所以如果它只写了部分的,那么MYSQL如何进行重做操作成功交易的交易数据,然后服务器下来?因为在重启服务器时需要进行重做操作。
Eidt,对不起,我错了,我的意思是为什么MYSQL没有重做日志而不是撤消日志。
答案 0 :(得分:0)
这不是在MySQL级别上完成的,这涉及支持事务的各种表类型(例如innodb)。
Innodb是MySQL中使用最广泛的事务表类型,我的回答仅关注此表类型。对于其他事务表类型,请参阅有关重做日志的更多信息的自己的文档。
innodb redo logs上的MySQL文档描述了innodb如何存储重做日志:
默认情况下,重做日志在磁盘上物理表示为一组 文件名为ib_logfile0和ib_logfile1。 MySQL写入重做日志 文件以循环方式。重做日志中的数据按术语编码 受影响的记录;这些数据统称为重做。 数据通过重做日志的传递用a表示 不断增加的LSN值。