1. bin log与redo log的区别
- redo log是InnoDB存储引擎独有的日志文件,用来实现事务的持久性,让数据库拥有crash safe的能力;而bin log属于MySQL中Server层的日志,是每个存储引擎都可以使用的日志文件。
- redo log是物理日志,主要记录的是页面的更新;bin log是逻辑日志,主要记录的是SQL语句
- redo log采用的是循环写,具有大小限制,当其中的数据同步到磁盘上,redo log的数据就可以删除了;而bin log采用的是追加写,当bin log文件满了以后,会将bin log中的记录同步到磁盘上进行保存,然后清空bin log。
2. undo log
undo log主要提供事务的一致性,满足事务回滚与MVCC的功能,另外undo log会产生redo log。