• Mysql主从延迟解决方案(转)


    主从同步出现的延迟问题原因及解决方案

    对于主从正常执行,相应的延迟几乎是不存在的。但是在高QPS下,主从同步却出现了比较明显的延迟情况。

    _________________________________________________________

    问题一:主库的从库太多,导致复制延迟

    从库数据以3-5个为宜,要复制的从节点数量过多,会导致复制延迟


    问题二:从库硬件比主库差,导致复制延迟

    查看Master和Slave的系统配置,可能会因为机器配置不当,包括磁盘I/O、CPU、内存等各方面因素造成复制的延迟。一般发生在高并发大数据量写入场景中


    问题三:慢SQL语句过多

    假如一条SQL语句执行时间是20秒,那么从执行完毕到从库上能查到数据至少需要20秒,这样就延迟20秒了。

    一般要把SQL语句的优化作为常规工作不断地进行监控和优化,如果单个SQL的写入时间长,可以修改后分多次写入。通过查看慢查询日志或show full processlist命令,找出执行时间长的查询语句或大的事务

    问题四:主从复制的设计问题

    例如主从复制单线程,如果主库写并发太大,来不及传送到从库,就会导致延迟。更高版本的Mysql可以支持多线程复制,门户网站则会开发自己的多线程同步功能

     

    问题五:主从库之间的网络延迟

    主从库的网卡、网线、交换机等网络设备都可能成为复制的瓶颈,导致复制延迟。另外,跨公网的主从复制很容易导致主从复制延迟

     

    问题六:主库读写压力大,导致复制延迟

    架构的前端要加buffer及缓存层

    门户网站的解决方案:

    优酷的解决方案:数据库分片技术,而抛弃了由于数据量的越来越多导致复制延迟的问题。按照user_id进行分片,这样必须有一个全局的表来管理用户与shard的关系,根据user_id可以得到share_id,然后根据share_id去指定的分片查询指定的数据

     

    淘宝的解决方案:修改源码,对应的机制是Transfer机制,此处通过对Binlog日志重做采用多线程实现,从而提高slave的QPPS

    摘自:https://blog.51cto.com/szk5043/1762981

  • 相关阅读:
    第三章:IIS发布dvbbs及SQL2005问题解决
    第三章:web安全基础-IIS发布所遇问题的解决办法
    搭建个人的云-Web服务器
    第三章:web安全基础-IIS发布网站
    第三章web安全基础-web系统架构
    第二章-网络协议安全
    第一章信息收集-漏洞扫描awvs和appscan
    第一章信息收集-漏洞利用框架metaspoit基本实用
    1108. Defanging an IP Address
    Linux基础
  • 原文地址:https://www.cnblogs.com/wt645631686/p/9715870.html
Copyright © 2020-2023  润新知