MySQL 之 InnoDB引擎 Log Buffer

Log Buffer(日志缓冲区)是一块内存区域用来保存要写入磁盘上的日子文件的数据。 Log Buffer的大小由innodb_log_buffer_size变量定义。默认大小为16MB。Log Buffer的内容会定期刷到磁盘上。大的Log Buffer让较大事务能够运行,而无需在事务提交之前将redo log中的数据写入磁盘。

因此,如果有DML操作并且会影响很多行这样是事务,增加日志缓冲区的大小可以节省磁盘IO

它会存储InnoDB存储引擎层日志:redo日志和undo日志

它位于InnoDB引擎架构的内存中的结构:

系统变量

innodb_flush_log_at_trx_commit

控制如何写入日志缓冲区的内容并刷入磁盘

完全符合ACID要求默认设置为1。在每次事务提交时写入日志并刷新到磁盘。可以通过更改默认值来获得更好的性能,但随后可能会在崩溃中丢失事务。

该变量有三种值,0,1,2

其中1是默认值,也是最严格的,最安全的,在每次事务提交时写入日志并刷新到磁盘,确保数据不会丢失,但是性能上是最低的,一般来说大家都不选择这个默认值,因为刷到磁盘是一次比较昂贵的操作,有一定的物理写入如果可能的话不建议使用默认值。但是从安全角度考虑的话是最好的,

  • 5
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

_我走路带风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值