1.binlog是逻辑日志,属于存储引擎层,当事务提交前,会在binlog中写入修改数据库的指令.    binlog可以用来主从复制. 2.redo log是物理日志,属于innodb引擎,会记录事务提交时,物理页的变化.恢复速度比binlog快. 3.undo log是逻辑日志,事务提交时,记录操作的反操作(insert->delete,update->update,delete->insert),可以用于回滚。   undo log 和 mvcc机制可以实现 innodb 引擎在rr下 的快照读. 快照读.   1.若rowVersion<min(readview),说明该行未被修改,直接返回.   2.若rowVersion>max(readview),说明该行被后面开启的事务修改并提交,从undolog中找到老版本.   3.若min(readview)<=rowVersion<=max(rowVersion),说明同一批的事务修改该行并提交,从undolog中找到老版本(同2).