文章 > MySQL > mysql如何减少主从延迟

mysql如何减少主从延迟

mysql

小妮浅浅

2021-10-18 15:00:10456浏览 · 0收藏 · 0评论

1,优化SQL。

避免慢SQL,减少批量操作,建议以update-sleep的形式写脚本;

2,降低多线程大事务并发的概率。

优化业务逻辑;

3,增加服务器。

目的是分散阅读压力,从而减少服务器负载;

4,提高从库机的配置。

减少主库写binlog和从库读binlog的效率差;

5,尽量使用短链路。

即主库与从库服务器的距离尽量短,提高端口带宽,减少binlog传输的网络延迟;

6,实时要求的业务读强制走主库,从库只做灾备备份。

实例

    mysql> stop slave;
    Query OK, 0 rows affected (0.03 sec)
     
    mysql> change master to master_delay=600;
    Query OK, 0 rows affected (0.01 sec)
     
    mysql> start slave;
    Query OK, 0 rows affected (0.01 sec)
     
    mysql> show slave status\G
    *************************** 1. row ***************************
                   Slave_IO_State: Waiting for master to send event
                      Master_Host: 172.17.61.131
                      Master_User: repl
                      Master_Port: 3306
                    Connect_Retry: 60
                  Master_Log_File: mysql_bin.000037
              Read_Master_Log_Pos: 154
                   Relay_Log_File: slave_relay_bin.000002
                    Relay_Log_Pos: 320
            Relay_Master_Log_File: mysql_bin.000037
                 Slave_IO_Running: Yes
                Slave_SQL_Running: Yes
    。。。
              Exec_Master_Log_Pos: 154
                  Relay_Log_Space: 527
    。。。
                 Master_Server_Id: 10000
                      Master_UUID: 8d8746fb-2cc6-11e8-b1b6-000c295c63e0
                 Master_Info_File: /u01/mysql/master.info
                        SQL_Delay: 600
              SQL_Remaining_Delay: NULL
          Slave_SQL_Running_State: Slave has read all relay log; waiting for more updates
               Master_Retry_Count: 86400
    。。。
    1 row in set (0.00 sec)

以上就是mysql减少主从延迟的方法,希望对大家有所帮助。更多mysql学习指路:Mysql

关注公众号,随时随地在线学习

本教程部分素材来源于网络,版权问题联系站长!

Baidu