1. 程式人生 > >mysql從庫刷資料慢,有延時的情況處理

mysql從庫刷資料慢,有延時的情況處理

在一次生產環境排查問題中,發現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:折中,減少作業系統檔案寫入等待時間