当前位置: 首页 > news >正文

企业门户网站在信息系统架构中属于哪个层次兴义市住房和城乡建设局网签网站

企业门户网站在信息系统架构中属于哪个层次,兴义市住房和城乡建设局网签网站,网站建设模块是什么,knowhow汉化wordpress在 MySQL 中,redo log、undo log 和 binlog 是三种不同类型的日志,分别服务于不同的数据库特性(如事务原子性、持久性、一致性,以及数据备份、恢复、复制等)。以下从功能、原理、区别和联系四个方面详细分析&#xff1…

在 MySQL 中,redo logundo log 和 binlog 是三种不同类型的日志,分别服务于不同的数据库特性(如事务原子性、持久性、一致性,以及数据备份、恢复、复制等)。以下从功能、原理、区别和联系四个方面详细分析:

一、基本概念与功能

1. redo log(重做日志)
  • 所属模块:InnoDB 存储引擎(仅 InnoDB 支持,MyISAM 无此机制)。
  • 本质:物理日志,记录数据页的物理修改操作(如“将某个数据页的第 10 行字段 A 的值从 1 改为 2”)。
  • 作用
    • 实现事务的持久性(Durability):确保事务提交后,数据变更即使未写入磁盘也不会丢失(通过 redo log 持久化,配合 InnoDB 的 WAL 机制(Write-Ahead Logging),先写日志再写数据)。
    • 崩溃恢复(Crash Recovery):当数据库异常重启时,通过 redo log 重做未持久化到磁盘的事务,保证数据不丢失。
  • 特点
    • 顺序写入磁盘(效率高),默认写入 ib_logfile1ib_logfile2 等文件(路径由 innodb_log_group_home_dir 配置)。
    • 日志大小固定,循环使用(通过 innodb_log_file_size 和 innodb_log_files_in_group 控制)。
2. undo log(回滚日志)
  • 所属模块:InnoDB 存储引擎(仅 InnoDB 支持)。
  • 本质:逻辑日志,记录数据修改前的镜像(即“反向操作”,如“修改前字段 A 的值为 1”)。
  • 作用
    • 实现事务的原子性(Atomicity):当事务需要回滚时,通过 undo log 撤销未提交的修改。
    • 支持 MVCC(多版本并发控制):在读取数据时,通过 undo log 构建数据的历史版本,避免锁竞争,提升并发性能。
    • 一致性读(快照读):SELECT 语句默认读取的是数据的可见版本(通过 undo log 生成),而非实时锁数据。
  • 特点
    • 存储在 InnoDB 的系统表空间(ibdata 文件)或独立表空间(由 innodb_undo_tablespaces 配置)。
    • 事务提交后,undo log 不会立即删除,而是进入** purge 队列**,由后台线程定期清理(可通过 innodb_purge_delay 控制清理频率)。
3. binlog(二进制日志)
  • 所属模块:MySQL Server 层(所有存储引擎共享,包括 InnoDB、MyISAM 等)。
  • 本质:逻辑日志,记录所有修改数据的操作(如 INSERT、UPDATE、DELETE,以及部分 DDL 语句)。
  • 作用
    • 主从复制(Replication):主库将 binlog 传输给从库,从库解析并执行以保持数据同步。
    • Point-in-Time 恢复:通过 binlog 记录的操作,可将数据库恢复到某个历史时刻(需结合全量备份)。
  • 特点
    • 记录格式有三种:STATEMENT(记录 SQL 语句)、ROW(记录行级数据变更)、MIXED(混合模式)。
    • 日志文件默认名为 mysql-bin.xxxxxx(路径由 log_bin 配置),大小无固定限制,可通过 expire_logs_days 设置过期时间。
    • 仅记录提交的事务(未提交的事务不会写入 binlog)。

二、核心区别对比

维度

redo log

undo log

binlog

所属层

InnoDB 存储引擎层

InnoDB 存储引擎层

MySQL Server 层

日志类型

物理日志(数据页修改)

逻辑日志(回滚/版本信息)

逻辑日志(SQL 或行级操作)

是否跨引擎

仅 InnoDB 支持

仅 InnoDB 支持

所有引擎通用

记录内容

数据页的物理变更(如页号、偏移量、数据)

数据修改前的旧值(用于回滚和 MVCC)

SQL 语句或行级变更(如前后行数据)

主要用途

事务持久化、崩溃恢复

事务回滚、MVCC

主从复制、数据恢复

写入时机

事务提交时(可通过 innodb_flush_log_at_trx_commit控制)

数据修改前生成(与事务执行并行)

事务提交时(两阶段提交保证一致性)

文件特性

固定大小,循环覆盖

动态增长,定期清理(purge)

可配置自动拆分、过期策略

是否加密

否(需通过表空间加密间接实现)

否(依赖表空间加密)

是(可通过 binlog_encryption 配置)

三、联系与协作

  1. 在事务中的协作
    • 事务提交流程
      1. InnoDB 先将数据修改记录到 redo log(处于 prepare 状态)。
      2. MySQL Server 将操作记录到 binlog(完整写入)。
      3. InnoDB 提交事务(将 redo log 标记为 commit 状态)。

此流程称为 两阶段提交(Two-Phase Commit),确保 redo log 和 binlog 的数据一致性,避免因崩溃导致日志不一致(如“redo 已提交但 binlog 未记录”或反之)。

    • 回滚机制

事务执行过程中产生的临时修改会记录到 undo log,若事务回滚,直接通过 undo log 撤销修改,无需操作 redo log 和 binlog(未提交的事务不会写入 binlog)。

  1. 在崩溃恢复中的协作
    • 数据库重启时,InnoDB 首先通过 redo log 重做(Redo)所有已提交但未写入磁盘的事务。
    • 然后通过 undo log 回滚(Undo)所有未提交的事务(此时 binlog 中无这些事务记录)。
    • binlog 不参与崩溃恢复的直接操作,但在基于备份的恢复中,需结合 binlog 重做后续操作。
  2. 对 MVCC 的支持
    • undo log 生成数据的历史版本,redo log 确保版本数据的持久化,而 binlog 记录最终提交的版本变更,三者共同保障并发场景下的一致性和性能。

四、典型应用场景

场景

涉及日志

说明

事务提交后断电恢复

redo log

通过 redo log 重做未写入磁盘的事务,保证数据不丢失。

事务回滚(ROLLBACK)

undo log

通过 undo log 撤销未提交的修改,释放锁资源。

主从复制延迟排查

binlog(ROW 格式)

分析主库 binlog 生成速度与从库应用速度,定位复制瓶颈。

误删数据恢复(PITR)

全量备份 + binlog

先恢复备份,再通过 binlog 重做备份之后的操作,恢复到指定时间点。

高并发读场景

undo log + redo log

undo log 提供 MVCC 快照,redo log 保证数据持久化,避免读锁影响性能。

五、总结

  • redo log 是 InnoDB 实现事务持久性的核心,通过 WAL 机制提升写入性能,并保障崩溃恢复。
  • undo log 是 InnoDB 实现事务原子性和 MVCC 的基础,用于回滚和版本控制。
  • binlog 是 MySQL 层面的通用日志,服务于数据备份、复制和恢复,与存储引擎解耦。
  • 三者通过 两阶段提交和事务生命周期紧密协作,共同支撑 MySQL 的事务特性、数据一致性和可用性。合理理解和配置这三类日志,对数据库性能优化、故障排查和容灾架构设计至关重要。
http://www.dtcms.com/a/473139.html

相关文章:

  • 门户网站建设公司流程苏州建设网站专业
  • 法人变更在哪个网站做公示怀宁县住房与城乡建设局网站
  • 新余网站建设找谁做简历制作网站免费
  • 网站后台模板 仿cnzz五分钟wordpress
  • 一个完整的企业网站怎么做如何做宣传自己公司网站
  • cp网站开发搭建服装设计学校排名
  • 云南房产网站建设番禺区
  • 网站建设怎么申请域名新乡做企业网站的公司
  • 关于网站建设的新闻平面设计技能培训班
  • 统一企业官网淘宝关键词排名优化技巧
  • 东华网站开发网站搬家怎么做
  • 自己做网站要学什么软件下载设计室内效果图设计
  • 拼多多刷单网站开发集运网站建设
  • 盐田高端网站建设做淘宝要网站?
  • 如何使用记事本做网站网页设计实验步骤
  • 网站建设服务合同网站域名费用多少钱一年
  • 淄博桓台学校网站建设方案网站设计策划书 模板
  • 网站设计团队分工win7用iis搭建网站
  • 有什么平面设计的网站外贸用什么软件
  • 深圳手机网站建设联系电话免费咨询平台
  • 企业网站建设的类型主要有东莞网约车租车公司
  • 桐梓网站开发域名解析映射到网站空间怎么做
  • 提供有经验的网站建设公司网站建设的现状
  • 做网站 搞流量郑州网站优化外包
  • 网站建设可上传视频的包图网登录入口
  • 北京交友最好的网站建设DW做网站下拉列表怎么做
  • 网站维护中页面贵阳市城乡建设部网站
  • 网站制作视频教程免费微商城运营
  • 十大接单网站wordpress输入命令
  • 大连做网站 选领超科技icp备案号什么意思