mysql日志文件
今天,我们主要讨论的主角是mysql日志文件,主要包含binlog、redolog、undolog三个日志文件,它们分别存储什么,作用是什么,为什么要分为这三个日志文件?看完这篇博客,你心中的疑惑一定会解决。
在开始之前,我们先通过一个例子,来简单了解下binlog和redolog的角色。
武林外传大家都看过吧,吕秀才是同福客栈的记账员,在古时候,经常流行赊账这一说法,而且大家赊账都很频繁,那么吕秀才为了记录赊账情况,它会将客人的赊账记录写在账本上。因为账本特别厚,每次查询和修改客人的赊账记录都得翻一遍密密麻麻的账本,特别费时间。这时候,小郭给他提了个建议,让他在人流量特别多的时候,把赊账情况记录在旁边的黑板上,等到不忙的时候,再将黑板上的赊账记录更新到账本上。果然,效率提高了很多,而且还得到了佟掌柜的夸赞。
这里,账本就相当于Binlog,黑板就相当于redolog。通过黑板和账本的结合,大大的提高了记账记录。
binlog
binlog在Mysql中的作用就是归档。它有两种格式,
- statement 格式,最后会有 COMMIT;它其实就是记录完整的sql语句。
- row 格式的 binlog,最后会有一个 XID event。它会记录每一行的修改记录。
- 混合模式。根据实际情况去选择,我这里简单举个例子,比如平时用row格式,发现一个s