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、避免数据库进行各种大量的运算。

  • 相关阅读:
    scrollView(3)-相册浏览简单的缩放
    ScrollView(2)轮播图-点击跳转
    定制单元格-cell
    模态视图present
    将博客搬至CSDN
    VBS进行http请求及JSON数据的读取和生成
    igraph安装(R/Python)
    teiid入门
    漫谈设计模式
    MapReduce实例-基于内容的推荐(一)
  • 原文地址:https://www.cnblogs.com/FengGeBlog/p/10215828.html
Copyright © 2011-2022 走看看