荆门建设局官方网站,毕业设计网页,一个教做网页的网站,网站建设进度总结一、binlog和redo log的区别
特性binlogredo log记录对象记录的是 MySQL 服务器的事务操作#xff0c;针对的是整个数据库实例。记录的是 InnoDB 存储引擎的数据页变化#xff0c;针对的是具体的存储引擎层面。记录内容记录的是事务的逻辑操作#xff0c;例如 SQL 语句针对的是整个数据库实例。记录的是 InnoDB 存储引擎的数据页变化针对的是具体的存储引擎层面。记录内容记录的是事务的逻辑操作例如 SQL 语句语句型 binlog或行变化行型 binlog。记录的是数据页的物理变化例如某个页的某个偏移量的修改。记录时间在事务提交后写入即事务提交完成后才写入 binlog。在事务执行过程中写入即事务提交前会写入 redo log。记录方式写到一定大小会切换下一个不会覆盖之前的日志。依次往几个Redo log文件中写入如果最后一个文件写满了又会回到第一个Redo log中写入。用途备份复制保证事务的持久性 二、Redo log和undo log的区别
对比方向undo logredo log记录内容方向的数据修改记录正向的数据页变更记录写入顺序随机读写顺序写作用帮助事务回滚以及实现MVCC用保证事务的持久性
三、更新数据时各种日志的写入时机
举例DELETE FROM t1 WHERE id1
阶段undo logredo logbinlog事务开始开始记录事务的旧值但尚未写入。未写入。未写入。事务执行阶段写入 undo log记录 id1 行的旧值。未写入。未写入。事务提交判断undo log 已写入记录旧值。未写入。未写入。事务提交undo log 已写入记录旧值。写入 redo log记录 id1 行被删除后的物理变化。未写入binlog 在事务提交后写入。事务提交后undo log 已写入记录旧值。redo log 已写入记录物理变化。写入 binlog记录 DELETE FROM t1 WHERE id1 的逻辑操作。事务结束成功undo log 已写入记录旧值。redo log 已写入记录物理变化。binlog 已写入记录逻辑操作。事务回滚失败使用 undo log 回滚恢复 id1 行的旧值。未写入redo log 只在事务成功提交时写入。未写入binlog 只在事务成功提交后写入。