码迷,mamicode.com
首页 > 数据库 > 详细

innodb_flush_log_at_trx_commit

时间:2014-10-22 18:33:55      阅读:135      评论:0      收藏:0      [点我收藏+]

标签:mysql innodb_flush_log

在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

标签:mysql innodb_flush_log

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!