一文贯通MySQL日志

文 / @WordPress主题

是在事务回滚时恢复数据。当每个事务开始执行时,Mysql会为该事务单独生成一个回滚日志,将事务开始执行前的数据版本记录在日志中。如果事务后来需要回滚,Mysql就可以通过读取回滚日志来恢复数据。

RedoLog重做日志

RedoLog是Mysql的重做日志,主要作用是在崩溃恢复时保证数据的完整性。和undolog不同,RedoLog是在事务执行期间就不断更新的,而不是在事务开始时记录。每个事务在执行时会将所做的修改操作记录在RedoLog中,然后才将修改应用到表中。当Mysql崩溃后,它可以通过重放RedoLog中的操作来恢复修改。

Binlog二进制日志

Binlog是Mysql的二进制日志,主要作用是记录数据库的所有更新操作,包括增删改操作等。Binlog是在Server层产生的,它记录的操作语句可以跨越多个数据库,是用来记录完整的MySQL数据库操作的日志。在主从复制中,从库通过读取Binlog来复制主库中的操作,来达到主从同步的目的。

综上,Mysql的日志系统是Mysql保证数据不丢失的关键,它可以恢复到任意时刻的数据状态,无论在事务提交前还是提交后崩溃都能保证数据不丢失。其中undolog、RedoLog和Binlog的功能各不相同,但它们都是保证Mysql数据不丢失的重要日志组成部分。学习和掌握Mysql的日志系统,有助于我们更好地理解Mysql数据库的底层实现原理。

添加UTHEME为好友
扫码添加UTHEME微信为好友
· 分享WordPress相关技术文章,主题上新与优惠动态早知道。
· 微信端最大WordPress社群,限时免费入群。