个人整理了一下几个参数:
innodb_buffer_pool_size= 16G
#这对Innodb表来说非常重要。Innodb相比MyISAM表对缓冲更为敏感
MyISAM可以在默认的key_buffer_size设置下运行的可以,然而Innodb在默认的innodb_buffer_pool_size设置下却跟蜗牛似的。由于Innodb把数据和索引都缓存起来,无需留给操作系统太多的内存,因此如果只需要用Innodb的话则可以设置它高达70-80% 的可用内存。
(=MyISAM的key_buffer_size)
innodb_flush_log_at_trx_commit = 2
#如果将此参数设置为1,将在每次提交事务后将日志写入磁盘。
#为提供性能,可以设置为0或2,但要承担在发生故障时丢失数据的风险。
#设置为0表示事务日志写入日志文件,而日志文件每秒刷新到磁盘一次。
#设置为2表示事务日志将在提交时写入日志,但日志文件每次刷新到磁盘一次。
innodb_thread_concurrency= 8
#服务器有几个CPU就设置为几,建议用默认设置,一般为8.
innodb_max_dirty_pages_pct= 90
#Buffer_Pool中Dirty_Page所占的数量,直接影响InnoDB的关闭时间。
推荐阅读 http://www.taobaodba.com/html/221_innodb_max_dirty_pages_pct_checkpoint.html
参数innodb_max_dirty_pages_pct可以直接控制了Dirty_Page在Buffer_Pool中所占的比率,而且幸运的是innodb_max_dirty_pages_pct是可以动态改变的。所以,在关闭InnoDB之前先将innodb_max_dirty_pages_pct调小,强制数据块Flush一段时间,则能够大大缩短MySQL关闭的时间。