1.innodb_flush_log_at_trx_commit (双一标准之一)
作用:主要控制了innodb将log buffer中的数据写入日志文件并flush磁盘的时间点,取值分别为0、1、2三个。
查询:select @@innodb_flush_log_at_trx_commit;
参数说明:
1,每次事物的提交都会引起日志文件写入、flush磁盘的操作,确保了事务的ACID;flush 到操作系统的文件系统缓存 fsync到物理磁盘.
0,表示当事务提交时,不做日志写入操作,而是每秒钟将log buffer中的数据写入文件系统缓存并且秒fsync磁盘一次;
2,每次事务提交引起写入文件系统缓存,但每秒钟完成一次fsync磁盘操作。
默认值是1
2.Innodb_flush_method
作用:控制的是,log buffer 和data buffer,刷写磁盘的时候是否经过文件系统缓存 查看:show variables like '%innodb_flush%'; O_DIRECT :数据缓冲区写磁盘,不走OS buffer fsync :日志和数据缓冲区写磁盘,都走OS buffer O_DSYNC :日志缓冲区写磁盘,不走 OS buffer 使用建议: 最高安全模式 innodb_flush_log_at_trx_commit=1 Innodb_flush_method=O_DIRECT 最高性能: innodb_flush_log_at_trx_commit=0 Innodb_flush_method=fsync
3.redo日志有关的参数
innodb_log_buffer_size=16777216 innodb_log_file_size=50331648 innodb_log_files_in_group = 3