mysql的redolog的写入,是在数据刷盘之前还是之后?

mysql的redolog的写入,是在数据刷盘之前还是之后?

阅读 1.8k
2 个回答

具体看redolog的刷盘策略这个是可以配置的,InnoDB给出innodb_flush_log_at_trx_commit 参数,该参数控制 commit提交事务时,如何将 redo log buffer中的日志刷新到 redo log file 中。它支持三种策略:
(1)设置为0 :表示每次事务提交时不进行刷盘操作。默认master thread每隔1s进行一次重做日志的同步。
(2)设置为1 :表示每次事务提交时都将进行同步,刷盘操作( 默认值 )
(3)设置为2 :表示每次事务提交时都只把 redo log buffer 内容写入 page cache,不进行同步。由os自己决定什么时候同步到磁盘文件。具体的刷盘时机不确定

默认是1,这个操作基本能保证真正保证数据的持久性

MySQL的Redo Log是在数据修改操作发生时就进行写入,而不是等待数据刷盘之后再写入。这样可以确保事务的原子性和持久性。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题