MySQL中的binlog和redolog有什么区别?

MySQL中的binlog(二进制日志)和redolog(重做日志)都是数据库的重要组成部分,主要用于数据恢复和复制,但它们在作用和用途上存在明显的区别。

  1. 目的和作用:

    • Binlog:

      • 用于记录所有修改数据库内容的语句(如INSERT, UPDATE, DELETE),以及其执行时间等信息。
      • 主要用于复制和数据恢复。在主从复制环境中,从服务器使用binlog来复制数据改动。
      • Binlog是逻辑日志,记录的是SQL语句。
    • Redolog:

      • 属于InnoDB存储引擎特有的日志类型,用于在事务提交时确保数据的持久性。
      • 主要用于崩溃恢复(Crash Recovery)。当数据库异常重启时,redolog帮助恢复未提交事务所做的修改,以及撤销已提交事务之后发生的崩溃。
      • Redolog是物理日志,记录的是对数据页的修改。
  2. 日志内容:

    • Binlog记录的是对数据库做了什么修改,即记录SQL语句。
    • Redolog记录的是如何修改的,即具体的数据页修改操作。
  3. 写入时机:

    • Binlog在事务提交时一次性写入。
    • Redolog在事务进行中不断被写入,并在事务提交时被标记为已提交状态。
  4. 格式:

    • Binlog支持多种格式,如statement(基于SQL语句)、row(基于行的变更)、mixed(两者混合)。
    • Redolog是固定的物理格式,记录的是数据页的变化。
  5. 使用场景:

    • Binlog广泛用于数据恢复、数据复制和审计等。
    • Redolog主要用于事务的持久性保证和崩溃恢复。

总之,binlog和redolog在MySQL中都非常重要,但它们服务于不同的目的。Binlog主要用于复制和恢复操作,而Redolog确保事务的原子性和持久性,两者合作保证了数据库的稳定性和数据的安全性。

相关推荐
YanDDDeat2 分钟前
MySQL性能排查,慢查询导致CPU飙高的完整记录
mysql·安全·性能优化
MyFreeIT3 分钟前
Docker & MySQL Manual
mysql·docker·容器
菠萝猫yena3 分钟前
【数据库软件】beekeeper-studio安装方式(Mac)
数据库
Dovis(誓平步青云)7 分钟前
《指标中转站:Pushgateway 如何把监控覆盖到这些原本看不见的角落》
数据库·生成对抗网络·oracle·内网穿透·飞牛nas
Linux运维老纪11 分钟前
nginx 打造高性能 API 网关(‌Building a High-Performance API Gateway with Nginx)
linux·运维·mysql·nginx·云计算·运维开发
IT龟苓膏9 小时前
Redis 数据类型底层原理:SDS、quicklist、intset、skiplist、Bitmap、HyperLogLog 一篇讲清
数据库·redis·skiplist
流星白龙9 小时前
【MySQL高阶】19.变更缓冲区,自适应哈希索引,日志缓冲区
数据库·windows·mysql
晴天¥10 小时前
Oracle中的监听配置与管理(动态、静态监听配置对比以及listener.ora和tnsnames.ora)
数据库·oracle
瀚高PG实验室11 小时前
python连接HGDB超时
数据库·瀚高数据库·highgo
闪电悠米12 小时前
黑马点评-Redisson-01_why_redisson
java·服务器·网络·数据库·缓存·wpf