目錄
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)