MySQL的redo log重做日志都懂了吗?

举报
JavaEdge 发表于 2021/06/04 01:00:06 2021/06/04
【摘要】 redo log是基于磁盘的数据结构,在崩溃恢复期间用于修正未完成的事务写入的数据。 正常操作期间,redo log编码更改表数据的请求,这些请求是由SQL语句或低级API调用引起的。在初始化期间以及接受连接之前,会自动重播在意外关闭之前未完成更新数据文件的修改。 默认,redo log在磁盘上由ib_logfile0和ib_logfile1两个文件物理表示。 My...

redo log是基于磁盘的数据结构,在崩溃恢复期间用于修正未完成的事务写入的数据。

正常操作期间,redo log编码更改表数据的请求,这些请求是由SQL语句或低级API调用引起的。在初始化期间以及接受连接之前,会自动重播在意外关闭之前未完成更新数据文件的修改。

默认,redo log在磁盘上由ib_logfile0和ib_logfile1两个文件物理表示。 MySQL以循环方式写入redo log文件。redo log中的数据按照受影响的记录进行编码;此数据统称为重做。通过redo log的数据传递以不断增加的LSN值表示。

确保事务的持久性,防止事务提交后数据未刷新到磁盘就掉电或崩溃。

事务执行过程中写入 redo log,记录事务对数据页做了哪些修改。

  • 提升性能
    WAL(Write-Ahead Logging) 技术, 先写日志, 再写磁盘。
  • 日志文件
    ib_logfile0, ib_logfile1
  • 日志缓冲
    innodb_log_buffer_size
  • 强刷
    fsync()

文章来源: javaedge.blog.csdn.net,作者:JavaEdge.,版权归原作者所有,如需转载,请联系作者。

原文链接:javaedge.blog.csdn.net/article/details/113872705

【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。