MySQL中binlog/redolog/undolog区别是什么

MySQL中binlog/redolog/undolog区别是什么

在MySQL中,有三种日志记录机制,它们分别是binlog、redolog和undolog,它们各自有不同的作用和特点。

1. binlog

binlog是binary log的缩写,顾名思义,它就是二进制日志,主要用于记录对数据库中数据的修改操作,如insert、delete、update等。通常情况下,binlog记录在磁盘上,它可以用来进行数据库备份、恢复以及数据同步等操作。

binlog主要有基于语句和基于行两种模式,基于语句模式记录对数据的修改操作是通过SQL语句来实现的,但在某些情况下可能会产生不一致的情况,这时就需要使用基于行的模式记录。


#查看binlog模式
show variables like 'binlog_format';

#启用基于行的binlog模式
binlog_format=row;

2. redolog

redolog是redo log的缩写,它记录的是事务提交前对数据库的修改操作。在MySQL中,即使是发生异常情况,比如系统崩溃,通过redolog也能够保证数据的一致性。

redolog通常是记录在内存中,而不是像binlog一样记录在磁盘中,这使得它拥有更高的写入速度。但是由于它的缓存空间有限,因此记录在redolog中的操作是较为短暂的,一旦事务提交则redolog也会被清空。

3. undolog

undolog是undo log的缩写,它主要用于记录事务回滚前对数据库所做的所有修改操作,它的作用与redolog相反。当需要进行回滚操作时,MySQL会根据undolog中的记录对数据进行恢复。

通常情况下,undolog也是记录在内存中的,但是在某些情况下,比如系统崩溃,MySQL会将undolog转储到磁盘上,以保证数据的安全性。

4. 总结

binlog、redolog和undolog在MySQL中各自有不同的用途。binlog主要用于记录对数据库中数据的修改操作,可以用来进行备份、恢复和数据同步等操作。redolog主要用于记录事务提交前对数据库的修改操作,可以保证数据的一致性。undolog主要用于记录事务回滚前对数据库所做的所有修改操作,用于进行回滚操作。

晓白博客网版权所有,原文地址https://www.xbnb.cn/6791
© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享
评论 如有资源失效请在下面及时反馈,谢谢!! 抢沙发

请登录后发表评论

    请登录后查看评论内容