innodb 日志

简介: 日志两种格式 物理的日志 记录完整的页记录页中被修改的 内容逻辑日志 记录执行的 SQL 语句物理日志相对比较大,比如索引分裂是会影响很多记录,导致日志量很大 逻辑日志日志量会很小,但是会有部分执行 数据一致性问题物理日志 优点:恢复时可直接通过日志覆盖,不依赖原页面上面的内容。
  • 日志两种格式
    • 物理的日志
      • 记录完整的页
      • 记录页中被修改的 内容
    • 逻辑日志
      • 记录执行的 SQL 语句

物理日志相对比较大,比如索引分裂是会影响很多记录,导致日志量很大
逻辑日志日志量会很小,但是会有部分执行 数据一致性问题

  • 物理日志
    • 优点:恢复时可直接通过日志覆盖,不依赖原页面上面的内容。并且是幂等的。
    • 缺点:日志量很大
  • 逻辑日志

    • 优点:日志量小
    • 缺点:
      • 插入记录时 , 如果表中有多个索引 需要向B-TREE中插入记录,有可能第一个成功了第二个没有成功。
      • 索引分裂时可能需要将页A中数据移动一半到B中,A页写入磁盘成功,B没有写入磁盘时发生了Crash
  • Innodb日志方式

    • 采用逻辑与物理相结合 物理到Page Page内部是逻辑的(space id, page no, operation code, data)
    • 虽然采取此方式可以解决部分执行问题 但是数据一致性还是无法解决(因为对于page内的信息使用逻辑日志进行记录,所以当出现坏块时,并不能解决)
相关实践学习
日志服务之使用Nginx模式采集日志
本文介绍如何通过日志服务控制台创建Nginx模式的Logtail配置快速采集Nginx日志并进行多维度分析。
目录
相关文章
|
4月前
|
存储 SQL 关系型数据库
MySQL之深入InnoDB存储引擎——redo日志
我们知道数据的修改首先是在Buffer Pool中进行的,之后再定时刷到磁盘中。那么如果在事务提交后还没刷新到磁盘中,系统就崩溃了,那么此时数据就丢失了,这就不满足事务的持久性了。而如果我们考虑每次提交之后,都同步将事务中所有的页面刷新到磁盘,这样确实可以保证持久性,但是这种方法存在以下两种问题:
|
6月前
|
关系型数据库 MySQL 数据库
阿里云Mysql数据库物理全备文件恢复到自建数据库Mysql报错:InnoDB: Log file ./...xtrabacku
阿里云Mysql数据库物理全备文件恢复到自建数据库Mysql报错:InnoDB: Log file ./...xtrabacku
|
存储 关系型数据库 MySQL
InnoDB存储引擎的redo log(重做日志)
InnoDB存储引擎的redo log(重做日志)
85 0
InnoDB存储引擎的redo log(重做日志)
|
关系型数据库
InnoDB redo log thread cpu usage
InnoDB 在8.0 里面把写redo log 角色的各个线程都独立出来, 每一个thread 都处于wait 状态, 同样用户thread 调用log_write_up_to 以后, 也会进入wait 状态.这里的wait 等待最后都是通过调用 os_event_wait_for 来实现, 而 os_event_wait_for 是先spin + wait 的方式实现.所以这里有两个参数会影响os_event_wait_for 函数:spins_limit,timeout.
111 0
|
存储 SQL 缓存
InnoDB之UNDO LOG介绍
undo log是InnoDB事务特性的重要组成部分。当对记录做增删改操作就会产生undo记录,undo记录会记录到单独的表空间中。 本文将从代码层面对undo log进行一个简单的介绍;主要从下面四个方面来介绍undo log:undo log组织形式与分配与记录,以及undo log的应用及其清理。从这四个方面出发,我们就可以基本了解undo log的整个生命周期。
640 1
|
存储 运维 关系型数据库
庖丁解InnoDB之Undo LOG
Undo Log是InnoDB十分重要的组成部分,它的作用横贯InnoDB中两个最主要的部分,并发控制(Concurrency Control)和故障恢复(Crash Recovery),InnoDB中Undo Log的实现亦日志亦数据。本文将从其作用、设计思路、记录内容、组织结构,以及各种功能实现等方面,整体介绍InnoDB中的Undo Log,文章会深入一定的代码实现,但在细节上还是希望用抽象的实现思路代替具体的代码。本文基于MySQL 8.0,但在大多数的设计思路上MySQL的各个版本都是一致的。
355 3
|
存储 缓存 安全
庖丁解InnoDB之REDO LOG
磁盘数据库为了在保证数据库的原子性(A, Atomic) 和持久性(D, Durability)的同时,还能以灵活的刷盘策略来充分利用磁盘顺序写的性能,会记录REDO和UNDO日志,即ARIES方法。本文将重点介绍REDO LOG的作用,记录的内容,组织结构,写入方式等内容,希望读者能够更全面准确的理解REDO LOG在InnoDB中的位置。本文基于MySQL 8.0代码。
921 1
|
存储 缓存 算法
MySQL数据库InnoDB存储引擎Log漫游(3)
MySQL数据库InnoDB存储引擎Log漫游(3)
147 0
MySQL数据库InnoDB存储引擎Log漫游(3)
|
Oracle 关系型数据库 MySQL
新特性速递 | InnoDB redo log archiving(归档)
新特性速递 | InnoDB redo log archiving(归档)
291 0
|
存储 运维 关系型数据库
庖丁解InnoDB之UNDO LOG
本文将从其作用、设计思路、记录内容、组织结构,以及各种功能实现等方面,整体介绍InnoDB中的Undo Log​。
255 0
庖丁解InnoDB之UNDO LOG