mysql 数据库管理员 参数设置innodb_flush_log_at_trx_commit ,innodb log buffer数据是否实时更新到硬盘和redo log
innodb_flush_log_at_trx_commit
和 innodb_log_buffer_size
是 MySQL 中 InnoDB 存储引擎的两个重要配置参数。
innodb_flush_log_at_trx_commit
:控制日志缓冲何时刷新到日志文件。该参数有3个可能的值:0
:日志缓冲每秒一次地被写到日志文件中,并且对日志文件的刷新(flush)操作都会同步到磁盘上。但是,事务提交时不会进行任何操作。1
:默认值。每个事务提交时,日志缓冲都会写入日志文件,并且对日志文件的刷新(flush)操作都会同步到磁盘上。2
:每个事务提交时,日志缓冲被写入日志文件,但不会进行同步到磁盘的操作。同步到磁盘的操作每秒发生一次。
innodb_log_buffer_size
:控制日志文件的大小。日志文件主要用于恢复在发生崩溃时未完成的事务。如果事务日志生成速度较快,可能需要增加这个缓冲区的大小。
在 MySQL 配置文件(通常是 my.cnf
或 my.ini
)中设置这些参数的示例:
[mysqld]
innodb_flush_log_at_trx_commit=1
innodb_log_buffer_size=16M
请根据实际需求和系统性能进行调整。如果你的系统写入量大,并且对恢复时间要求不严格,可以适当增加 innodb_log_buffer_size
的大小以提高性能。如果对数据安全性要求较高,可以将 innodb_flush_log_at_trx_commit
设置为 1
以确保每个事务的变更都被持久化到磁盘上。
评论已关闭