MYSQL從庫延遲提高從庫效率

2021-10-19 07:47:49 字數 933 閱讀 5093

主從複製延期設定從庫的sycn_binlog提高複製效率

mysql配置引數sync_binlog說明

mysql提供乙個sync_binlog引數來控制資料庫的binlog刷到磁碟上去。

預設,sync_binlog=0,表示mysql不控制binlog的重新整理,由檔案系統自己控制它的快取的重新整理。這時候的效能是最好的,但是風險也是最大的。因為一旦系統crash,在binlog_cache中的所有binlog資訊都會被丟失。

如果sync_binlog>0,表示每sync_binlog次事務提交,mysql呼叫檔案系統的重新整理操作將快取刷下去。最安全的就是sync_binlog=1了,表示每次事務提交,mysql都會把binlog刷下去,是最安全但是效能損耗最大的設定。這樣的話,在資料庫所在的主機作業系統損壞或者突然掉電的情況下,系統才有可能丟失1個事務的資料。但是binlog雖然是順序io,但是設定sync_binlog=1,多個事務同時提交,同樣很大的影響mysql和io效能。雖然可以通過group commit的補丁緩解,但是重新整理的頻率過高對io的影響也非常大。對於高併發事務的系統來說,「sync_binlog」設定為0和設定為1的系統寫入效能差距可能高達5倍甚至更多。

所以很多mysql dba設定的sync_binlog並不是最安全的1,而是100或者是0。這樣犧牲一定的一致性,可以獲得更高的併發和效能。

在從庫上設定sync_binlog

檢視sync_binlog

show

global variables like

'sync_binlog'

;

設定sync_binlog值為0

set

global sync_binlog =

0;

參考:

mysql資料庫從庫同步延遲的問題:

mysql資料庫從庫同步延遲的問題

在從伺服器上執行show sl e status 可以檢視到很多同步的引數,我們需要特別注意的引數如下,希望文章對各位會有所幫助。在從伺服器上執行show sl e status 可以檢視到很多同步的引數,我們需要特別注意的引數如下 master log file sl e中的i o執行緒當前正在讀...

mysql 從庫日誌 MySQL 從庫日誌比主庫多

宣告 本文可能無法幫到所有人,只是分享給真正需要的人,如果你已經會了,複習一遍,也沒什麼壞處 在群裡聊天的時候,乙個群友說,生產庫主庫宕機,但是主從資料庫資料一致,但是從庫的日誌比主庫多,很是不理解!諮詢後發現,生產庫的主庫沒有設定sync binlog 1,而是為sync binlog 0 因此,...

如何從資料庫設計方面提高資料庫查詢效率

可以從以下多個方面優化資料庫設計提高資料庫查詢效率 a.對查詢進行優化,應盡量避免全表掃瞄,首先應考慮在 where 及 order by 涉及的列上建立索引。b.應盡量避免在 where 子句中對字段進行 null 值判斷,否則將導致引擎放棄使用索引而進行全表掃瞄,如 select id from...