前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >MySQL的Redo Log、Undo Log与Bin Log的详解

MySQL的Redo Log、Undo Log与Bin Log的详解

原创
作者头像
JDK7.0
发布2025-02-08 14:32:11
发布2025-02-08 14:32:11
1060
举报

在MySQL数据库中,redo logundo log是InnoDB存储引擎特有的日志类型,它们对于数据库的恢复和数据一致性至关重要。

1. Redo Log(重做日志)

作用:

  • 数据持久性保证:在事务提交时,所有的修改(包括插入、更新、删除)都会先写入重做日志。这样即使数据库崩溃,也可以从重做日志中恢复数据,保证数据的持久性。
  • 事务恢复:在系统崩溃恢复过程中,InnoDB会使用重做日志来重做那些已经提交但尚未写入磁盘的数据页修改。

特点:

  • 循环写入:重做日志是循环使用的,当写到日志文件的末尾时,会回到文件的开始处继续写入。
  • 固定大小:重做日志文件的大小是固定的,可以通过配置innodb_log_file_size来设置。

2. Undo Log(撤销日志)

作用:

  • 事务回滚:在事务执行过程中,如果需要回滚到某个点,可以通过读取撤销日志来恢复数据到事务开始前的状态。
  • 多版本并发控制(MVCC):在InnoDB中,通过撤销日志实现MVCC,允许多个事务同时读取同一数据的不同版本。

特点:

  • 动态增长:撤销日志根据需要动态增长,每个事务都会有自己的撤销日志空间。
  • 与事务关联:每个事务的开始和结束都会涉及到撤销日志的管理。

3. Binary Log(二进制日志)

作用:

  • 数据复制:MySQL的二进制日志用于复制数据到从服务器,支持主从复制和数据恢复。
  • 点对点恢复:可以通过二进制日志进行点对点的数据恢复。

特点:

  • 记录所有更改数据语句:二进制日志记录了所有更改数据(如INSERT、UPDATE、DELETE)的语句,但不记录SELECT和其它不更改数据的语句。
  • 可选配置:可以通过配置log_bin启用或禁用二进制日志

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. Redo Log(重做日志)
  • 2. Undo Log(撤销日志)
  • 3. Binary Log(二进制日志)
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档