赞
踩
二进制日志 binlog(归档日志) | 事务日志 redo log(重做日志) | undo log(回滚日志)。 |
binlog的写入时机也非常简单,事务执行过程中,先把日志写到binlog cache,事务提交的时候,再把binlog cache写到binlog文件中。 | redo log(重做日志)是InnoDB存储引擎独有的,它让MySQL拥有了崩溃恢复能力。 | |
binlog 是逻辑日志,记录内容是语句的原始逻辑,类似于“给 ID=2 这一行的 c 字段加 1”,属于MySQL Server 层。 | redo log 它是物理日志,记录内容是“在某个数据页上做了什么修改”,属于 InnoDB 存储引擎。 | |
可以说MySQL数据库的数据备份、主备、主主、主从都离不开binlog,需要依靠binlog来同步数据,保证数据一致性。 | MySQL InnoDB 引擎使用 redo log(重做日志) 保证事务的持久性;redo log(重做日志)让InnoDB存储引擎拥有了崩溃恢复能力。 | 使用 undo log(回滚日志) 来保证事务的原子性。 |
因为一个事务的binlog不能被拆开,无论这个事务多大,也要确保一次性写入,所以系统会给每个线程分配一个块内存作为binlog cache。 | ||
binlog是可以追加写⼊的。“追加写”是指binlog⽂件写到⼀定大小后会切换到下⼀个,并不会覆盖以前的日志; | redo log是循环写的,空间固定会用完; |
二进制日志 binlog(归档日志) | 事务日志 redo log(重做日志) | |
是否特有 | redo log是InnoDB引擎特有的; | binlog是MySQL的Server层实现的,所有引擎都可以使⽤; |
日志特性 | redo log是物理日志,记录的是“在某个数据页上做了什么修改”; | binlog是逻辑日志,记录的是这个语句的原始逻辑,比如 “给ID=2这⼀行的c字段加1”; |
写入方式 | redo log是循环写的,空间固定会用完; | binlog是可以追加写⼊的。“追加写”是指binlog⽂件写到⼀定大小后会切换到下⼀个,并不会覆盖以前的日志; |
使用方式 | binlog可以作为恢复数据使用,主从复制搭建; | redo log作为异常宕机或者介质故障后的数据恢复使用; |
对ACID的贡献 | binlog用于保证数据的一致性; | redo log用于保证持久性; |
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。