网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

MySQL的几个和innodb相关的主要参数设置总结

1).innodb_buffer_pool_size
为了提升性能,可以把要写的数据先在缓冲区buffer里合并,然后再发送给下一级存储。这样做可以提高I/O读写的效率。
InnoDB Buffer Pool就是InnoDB用来缓存它的数据和索引的内存缓冲区,可由innodb_buffer_pool_size设置其大小。
理论上将这个值设置的越高,访问数据需要的磁盘I/O就越少。常见的做法是让这个值大于热点数据,这样可以获得比较好的性能。建议将其值设置为机器物理内存大小的70%-80%之间。


2).innodb_log_file_size
日志组里每个日志文件的大小,在32位计算机上日志文件的合并大小必须小于4GB,默认大小是5MB,在生产环境下,这个值需要调整,官方文档推荐值为1MB到1/N的缓冲池大小,其中N是日志组里日志文件的数(由innodb_log_files_in_group变量来确定,一般
默认值为2)。值越大,在缓冲池中需要检查点刷新的行为就越少,因此也就越节约磁盘I/O,但更大的日志文件也意味着在崩溃时恢复的更慢。
建议将日志文件的大小设置为256MB或更大,这样可以满足一般情况下的需要。


3).innodb_flush_log_at_trx_commit,建议设置为2
这个选项的默认值是1,当设置为2时,在每个事务提交时,日志缓冲被写到文件中,但不对日志文件做刷新到磁盘的操作。对日志文件的刷新每秒才发生一次。所以,理论上操作系统崩溃或掉电只会丢失最后一秒的事务。
以下是设置为0,1,2三个值的详细解释:
如果innodb_flush_log_at_trx_commit设置为0,log buffer将每秒一次地写入log file中,并且log file的flush(刷到磁盘)操作同时进行.该模式下,在事务提交的时候,不会主动触发写入磁盘的操作。
如果innodb_flush_log_at_trx_commit设置为1,每次事务提交时MySQL都会把log buffer的数据写入log file,并且flush(刷到磁盘)中去.
如果innodb_flush_log_at_trx_commit设置为2,每次事务提交时MySQL都会把log buffer的数据写入log file.但是flush(刷到磁盘)操作并不会同时进行。
该模式下,MySQL会每秒执行一次 flush(刷到磁盘)操作。


4).sync_binlog,建议设置为0
sync_binlog=0,当事务提交之后,MySQL不做fsync之类的磁盘同步指令刷新binlog_cache中的信息到磁盘,而让Filesystem自行决定什么时候来做同步,或者cache满了之后才同步到磁盘。
sync_binlog=n,当每进行n次事务提交之后,MySQL将进行一次fsync之类的磁盘同步指令来将binlog_cache中的数据强制写入磁盘。

如果是autocommit模式,那么每执行一个语句就会向binlog里写入一次,否则每个事务写入一次。如果sync_binlog的值为正,那么每当sync_binlog参数设定的语句或事务数被写入binlog后,MySQL服务器就会将它的二进制日志同步到硬盘上。默认值是0,不与硬盘同步。值为1是最安全的选择,因为崩溃时,
你最多丢失binlog中的一个语句或事务。但是这也是最慢的选择,成本昂贵。

innodb_flush_log_at_trx_commit和sync_binlog参数的区别:
innodb_flush_log_at_trx_commit 这个是控制的是 innodb 存储的表的数据写入方式, 是ib_logfile这个文件的刷新方式
sync_binlog 控制的是 binlog 的写入,是mysql-bin.000的刷新方式


分享题目:MySQL的几个和innodb相关的主要参数设置总结
链接URL:http://bjjierui.cn/article/gogcij.html

其他资讯