MySQL主備復制延遲場景及解決方案
更新時間 2023-07-04 19:43:36
最近更新時間: 2023-07-04 19:43:36
分享文章
本文介紹了 MySQL主備復制延遲場景及解決方案。
場景描述
主庫執行了大事務。
原因分析
大事務是指一個事務中包含大量的數據變更操作,例如一個事務包含上萬次(insert,update,delete)等操作、一條SQL語句批量更新了上萬行數據等,大事務往往本身的執行時間很長(分鐘級)。當主實例執行了大事務后,會產生大量的Binlog日志,備機拉取這些Binlog耗時比一般事務長,且至少需要花費與主庫相同的時間來回放這些事務的更新,從而導致備機出現復制延遲。
解決方案
- 為了保證主從數據的一致性,需要等待大事務執行完成,主備復制延遲才能恢復。
- 業務側避免此類大事務,可以將大事務拆分為小事務,分批執行。例如,通過where條件或limit語句限制每次要更新的數據量。