网站开发 鲁山,风机 东莞网站建设,哪里有做网站app的,营销型网站建设的指导原则1.redo log
redo log是InnoDB存储引擎层的日志#xff0c;又称重做日志文件。 用于记录事务操作的变化#xff0c;记录的是数据修改之后的值#xff0c;不管事务是否提交都会记录下来 redo log包括两部分#xff1a;一个是内存中的日志缓冲(redo log buffer)#xff0c;另…1.redo log
redo log是InnoDB存储引擎层的日志又称重做日志文件。 用于记录事务操作的变化记录的是数据修改之后的值不管事务是否提交都会记录下来 redo log包括两部分一个是内存中的日志缓冲(redo log buffer)另一个是磁盘上的日志文件(redo log file)。 mysql支持三种将redo log buffer写入redo log file的时机可以通过innodb_flush_log_at_trx_commit参数配置大致就是 每隔一秒钟写一次 、每次事务提交写一次 、每次都写到缓存 每秒从缓存拉一次到文件。
2.undo log
undo log保存了事务发生之前的数据的一个版本可以用于回滚同时可以提供多版本并发控制下的读MVCC也即非锁定读 undo log主要记录了数据的逻辑变化比如一条INSERT语句对应一条DELETE的undo log对于每个UPDATE语句对应一条相反的UPDATE的undo log这样在发生错误时就能回滚到事务之前的数据状态。
3.binlog
binlog是属于MySQL Server层面的又称为归档日志属于逻辑日志是以二进制的形式记录的用于记录数据库执行的写入性操作(不包括查询)信息依靠binlog是没有crash-safe能力的。
在实际应用中binlog的主要使用场景有两个分别是主从复制和数据恢复
redolog和binlog区别 redo log是属于innoDB层面binlog属于MySQL Server层面的这样在数据库用别的存储引擎时可以达到一致性的要求。 redo log是物理日志记录该数据页更新的内容binlog是逻辑日志记录的是这个更新语句的原始逻辑。redo log 它是物理日志记录内容是“在某个数据页上做了什么修改”属于 InnoDB 存储引擎。而 binlog 是逻辑日志记录内容是语句的原始逻辑类似于“给 ID2 这一行的 c 字段加 1”属于MySQL Server 层。
redo log是循环写日志空间大小固定binlog是追加写是指一份写到一定大小的时候会更换下一个文件不会覆盖。 binlog可以作为恢复数据使用主从复制搭建redo log作为异常宕机或者介质故障后的数据恢复使用。
redo log是InnoDB存储引擎层的日志binlog是MySQL Server层记录的日志 两者都是记录了某些操作的日志(不是所有)自然有些重复但两者记录的格式不同。
最后本文章大部分基于这个文章只是增加了自己的理解