zoukankan      html  css  js  c++  java
  • 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、避免数据库进行各种大量的运算。

  • 相关阅读:
    Android虚拟、实体键盘不能同时使用?
    libwebsockets 运行问题
    Qt TabWidget QTabBar 宽高设置
    I.MX6 recovery mode hacking
    libwebsockets libwebsockets-webserver.c hacking
    MySQL(六)常用语法和数据类型
    MySQL(五)汇总和分组数据
    MySQL(四)字段及常用函数
    MySQL(三)用正则表达式搜索
    MySQL(二)数据的检索和过滤
  • 原文地址:https://www.cnblogs.com/FengGeBlog/p/10215828.html
Copyright © 2011-2022 走看看