1. 程式人生 > >MySQL主從延遲如何解決

MySQL主從延遲如何解決

1. 最簡單的減少slave同步延時的方案就是在架構上做優化,儘量讓主庫的DDL快速執行。

2. 還有就是主庫寫對資料安全性較高,比如sync_binlog=1,innodb_flush_log_at_trx_commit = 1 之類的設定,而slave則不需要這麼高的資料安全,完全可以將sync_binlog設定為0或者關閉binlog,innodb_flushlog也可以設定為0來提高sql的執行效率。

3. 另外就是使用比主庫更好的硬體裝置作為slave。

4. 另外,mysql-5.6.3已經支援了多執行緒的主從複製。

註釋:innodb_flush_log_at_trx_commit

預設值1的意思是每一次事務提交或事務外的指令都需要把日誌寫入(flush)硬碟,這是很費時的。特別是使用電池供電快取(Battery backed up cache)時。設成2對於很多運用,特別是從MyISAM錶轉過來的是可以的,它的意思是不寫入硬碟而是寫入系統快取。日誌仍然會每秒flush到硬,所以你一般不會丟失超過1-2秒的更新。設成0會更快一點,但安全方面比較差,即使MySQL掛了也可能會丟失事務的資料。而值2只會在整個作業系統 掛了時才可能丟資料。