当前位置:   article > 正文

MySQL 之 InnoDB引擎 Log Buffer

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

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/笔触狂放9/article/detail/575916
推荐阅读
相关标签
  

闽ICP备14008679号