- innodb_buffer_pool_size
为了提升写性能,可以把要写的数据先在缓冲区(buffer)里合并,然后再发送给下一级存储。这样做可提高I/O操作的效 率。InnoDBBuffer Pool就是InnoDB用来缓存它的数据和索引的内存缓冲区,可由innodb_buffer_pool_size设置其大小。理论上,将 这个值设置得越高,访问数据需要的磁盘I/O就越少。常见的做法是让这个值大于热点数据,这样可以获得比较好的性能。如 果不清楚环境的数据量和访问模式,建议将其设置为机器物理内存大小的70%~80%
- innodb_log_file_size
日志组里每个日志文件的大小。建议将日志文件的大小设置为256MB或更大,这样可以满足一般情况下的需要。
- innodb_flush_log_at_trx_commit ,建议设置为2
这个选项的默认值是1。当设置为2时,在每个事务提交时,日志缓冲被写到文件中,但不对日志文件做刷新到磁盘的操 作。对日志文件的刷新每秒才发生一次。所以,理论上,操作系统崩溃或掉电只会丢失最后一秒的事务。
- sync_binlog,建议设置为0
如果是autocommit模式,那么每执行一个语句就会向二进制日志写入一次,否则每个事务写入一次。如果sync_binlog的值为 正,那么每当sync_binlog参数设定的语句或事务数被写入二进制日志后,MySQL服务器就会将它的二进制日志同步到硬盘上。 默认值是0,不与硬盘同步。值为1是最安全的选择,因为崩溃时,你最多丢掉二进制日志中的一个语句或事务。但是,这也是 最慢的选择,成本昂贵