zoukankan      html  css  js  c++  java
  • MySQL主从数据同步延时分析

    一、MySQL数据库主从同步延迟                                                             

    要了解MySQL数据库主从同步延迟原理,我们先从MySQL的数据库主从复制原理说起:

    MySQL的主从复制都是单线程的操作,主库对所有DDL和DML产生的日志写进binlog,由于binlog是顺序写,所以效率很高。

    Slave的IO Thread线程从主库中bin log中读取取日志。
    Slave的SQL Thread线程将主库的DDL和DML操作事件在slave中重放。DML和DDL的IO操作是随即的,不是顺序的,成本高很多。

    由于SQL  Thread也是单线程的,如果slave上的其他查询产生lock争用,又或者一个DML语句(大事务、大查询)执行了几分钟,那么所有之后的DML会等待这个DML执行完才会继续执行,这就导致了延时。

    二、MySQL数据库主从同步延迟产生原因                                                 

        1Master负载

        2Slave负载

        3、网络延迟

        4、机器配置(cpu、内存、硬盘)

        总之,当主库的并发较高时,产生的DML数量超过slave的SQL Thread所能处理的速度,或者当slave中有大型query语句产生了锁等待那么延时就产生了。

    三、MySQL数据库主从同步延迟解决方案                                                       

         1salve较高的机器配置

         2Slave调整参数

           我们从《MySQL数据丢失情况分析》中知道,为了保障较高的数据安全性,配置sync_binlog=1,innodb_flush_log_at_trx_commit = 1 等设置。而Slave可以关闭binlog,innodb_flush_log_at_trx_commit也可以设置为0来提高sql的执行效率

         3、并行复制

           各版本MySQL并行复制的实现及优缺点

           MySQL 5.7 并行复制实现原理与调优

     MySQL5.7 的真正并行复制enhanced multi-threaded slave(MTS)是否已经完全解决了主从同步复制的延迟,还需要在实际项目中验证。

  • 相关阅读:
    中国建设银行接口使用详细说明
    Web Service入门
    支付宝及时到帐接口使用详解深入版
    C#仿QQ皮肤-ComboBox 控件实现
    SQl 2005 For XMl 简单查询(Raw,Auto,Path模式)(2)
    GridView 使用方法总结 (二)
    小谈c#数据库存取图片的方式
    SQl 2005 For XMl 简单查询(Raw,Auto,Path模式)(1)
    GridView 使用方法总结 (一)
    C# UDP 入门
  • 原文地址:https://www.cnblogs.com/exceptioneye/p/5514404.html
Copyright © 2011-2022 走看看