MySQL redolog, binlog, undolog

354 阅读1分钟

以前可能只是单纯的听说过有这么几个概念,到底是怎么个东西呢也没细研究。正好今天看了45讲,稍微总结一下~

一、redolog和binlog

  • redo log 是InnnoDB引擎特有的;binlog是MySQL在server层上的实现,所有引擎都可以使用。
  • redo log 是物理日志,记录的是“在哪个数据页上做了什么修改”; binlog 是逻辑日志,记录的是这个语句的原始逻辑,例如执行的具体SQL语句。
  • redo log 是循环写日志的,空间固定会用完,对应着MySQL data目录下 ib_logfile0 ib_logfile1 几个文件,会先写0,再写1,1写完再回头写0;binlog 是追加写的。一个文件写到一定大小后会切换到下一个,并不会覆盖以前的日志。