MySQL是先写入数据还是写log

MySQL是先写入数据还是写log

答案

在MySQL中,先写入日志(Redo Log和Binary Log)是比先写入数据文件更为常见的做法。

先写入Redo Log

当执行事务提交时,MySQL首先将事务的修改操作记录到Redo Log中,然后异步地将这些修改操作刷新到磁盘的数据文件。

这种方式被称为"write-ahead logging"(预写式日志)策略。

这样做的好处是在事务提交后,即使数据尚未完全写入数据文件,但通过Redo Log的信息,可以保证事务的持久性

先写入Binary Log

对于主从复制、数据复制和数据备份等功能,MySQL会先将修改操作记录到Binary Log中。Binary Log记录了所有对数据库的修改操作,以二进制格式存储,用于数据的复制和恢复。

在执行事务提交时,会先写入Binary Log,然后再写入数据文件。这样,在主从复制的场景下,从服务器可以通过读取Binary Log中的修改操作,实时复制主服务器上的数据变更,保持主从数据库的一致性。

结论

所以,在绝大多数情况下,MySQL的写入流程是先写入日志,再写入数据文件。这种策略能够确保数据的一致性和持久性,并提供了数据复制和恢复的功能。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值