MySQL中bin-log与redo-log的区别

首先,从体系结构上来讲:


binlog由数据库上层(server 层)生成,是SQL执行的逻辑日志。

redo log是存储引擎(innodb事务引擎)层面的物理格式的日志,记录的是对于每个页的修改。


作用上的区分:


binlog用来进行数据恢复(基于时间点的) 和 主从复制。


redolog用来保证事务的持久性,以及 crash recovery 。


生成和结束的时间机制也不一样:


InnoDB的redolog在事务进行中不断地被写入,而binlog在事务提交完成后进行一次写入


所以事务提交过程中,redo-log 先封口,然后在server 层生成bin-log.

你可能感兴趣的:(MySQL中bin-log与redo-log的区别)