首页 > 数据库技术 > 详细

innodb_flush_log_at_trx_commit

时间:2014-10-22 18:31:40      阅读:331      评论:0      收藏:0      [点我收藏+]

在mysql-5.6中innodb_flush_log_at_trx_commit的默认值为1.

mysql> show variables like "innodb_flush_log%";

+--------------------------------+-------+

| Variable_name                  | Value |

+--------------------------------+-------+

| innodb_flush_log_at_timeout    | 1     |

| innodb_flush_log_at_trx_commit | 1     |

+--------------------------------+-------+


取值范围一般可设置为0,1,2.

0代表log buffer以秒为单位刷写日志文件到本地磁盘,提交事务的时候不做任何操作。mysqld崩溃的时候会丢失最后一秒的事务。

1代表每次提交事务的时候,都会将log buffer刷写到日志。

2代表每次提交事务都会写(write)日志,但并不会执行刷(flush)的操作。定时刷到日志文件。但不能保证100%刷到磁盘。当系统崩溃或者断电时候才会丢失最后一秒的数据,innodb恢复时会忽略。


当使用source导入数据库时,效果比较明显,可以设置innodb_file_per_table = 1来查看文件,以对比所耗费时间。服务器1G内存,mysql的innodb_buffer_pool_size=600M时,设置为2,速度提升3倍多(sql文件800M)。对应查询速度变慢。

本文出自 “风行SUI” 博客,请务必保留此出处http://suifengxing.blog.51cto.com/8712413/1566769

innodb_flush_log_at_trx_commit

原文:http://suifengxing.blog.51cto.com/8712413/1566769

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!