MySQL主從延遲如何解決?


我們知道生產環境中經常會遇到MySQL主從延遲問題,從原理上也能看出主庫的事務提交是並發模式,而從庫只有一個SQL線程負責解析,所以本身上就可能存在延遲。

延遲的主要原因在於:

1、從庫的配置往往沒有主庫的配置高
2、主庫支持並發寫入,而5.7之前的版本上從庫只有單線程SQL來完成任務。

3、MySQL主從之間的同步,並不是完全的實時同步,而是主庫提交事務之后,從庫才再來執行一遍

4、主庫上的表的某個列沒有索引,然后對這個列進行delete或update操作

5、網絡問題,往返時延RTT較大。

 

解決方案如下:

1、使用MySQL5.7版本,MySQL5.7版本后引入新的機制,即基於組提交的並行復制,設置參數slave_parallel_workers的值大於0,還有一個參數slave_parallel_type='LOGICAL_CLOCK'。

。MySQL [fruit]> show variables like '%parallel%';
+------------------------+----------+
| Variable_name          | Value    |
+------------------------+----------+
| slave_parallel_type    | DATABASE |
| slave_parallel_workers | 0        |
+------------------------+----------+
2 rows in set (0.00 sec)

上面這個是沒有修改的例子而已。僅僅是為了展示

2、可以采用percona公司的PXC架構,實現多節點寫入,達到時時同步

3、在業務初期就選擇合適的分庫、分表策略,避免單表單庫過大帶來額外的復制壓力。

4、避免一些無用的I/O消耗,使用PCIE-SSD硬盤

5、磁盤陣列選擇RAID10架構,raid cache策略使用WB而非WT

6、適當調整buffer pool的大小

7、避免數據庫進行各種大量的運算。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM