mysql從庫刷資料慢,有延時的情況處理
阿新 • • 發佈:2018-12-19
在一次生產環境排查問題中,發現mysql的從庫延時很大。後來通過如下操作解決。
先看下伺服器的innodb_flush_log_at_trx_commit引數值,如果值為非2,將引數innodb_flush_log_at_trx_commit值設定為2
mysql> show variables like '%innodb_flush_log_at_trx_commit%';
+--------------------------------+-------+
| Variable_name | Value |
+--------------------------------+-------+
| innodb_flush_log_at_trx_commit | 1 |
+--------------------------------+-------+
1 row in set
mysql> set global innodb_flush_log_at_trx_commit=2;
innodb_flush_log_at_trx_commit 引數解釋: 0(延遲寫): log_buff --每隔1秒--> log_file —實時—> disk 1(實時寫,實時刷): log_buff —實時—> log_file —實時—> disk 2(實時寫,延遲刷): log_buff —實時—> log_file --每隔1秒--> disk 0:最快減少mysql寫的等待 1:最大安全性,不會丟失資料 2:折中,減少作業系統檔案寫入等待時間