redo Log 简介
修改一笔数据为什么要走redo log,而不是直接写入磁盘呢?
因为频繁刷盘是很耗时的,一般都是走redo log然后异步刷盘。
其次,随机刷盘和顺序刷盘时间是不同的(随机I/O 顺序I/O),从redo log刷盘可以节省时间。这也是redo log存在的意义。
redo log写入机制
redo log 相关参数设置
innodb_flush_log_at_trx_commit
默认为1. 一般2用的比较多。
in
mtr: 小事务。
mysql> show variables like '%innodb_undo%'; +-------------------------+-------+ | Variable_name | Value | +-------------------------+-------+ | innodb_undo_directory | . | | innodb_undo_logs | 128 | | innodb_undo_tablespaces | 0 | +-------------------------+-------+ 3 rows in set (0.00 sec) mysql> mysql> show variables like '%innodb_log%'; +-----------------------------+----------+ | Variable_name | Value | +-----------------------------+----------+ | innodb_log_buffer_size | 8388608 | | innodb_log_compressed_pages | ON | | innodb_log_file_size | 50331648 | | innodb_log_files_in_group | 2 | | innodb_log_group_home_dir | ./ | +-----------------------------+----------+ 5 rows in set (0.01 sec)