暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

MySQL 主从延迟问题思路

巴韭特锁螺丝 2022-09-24
48

背景:

一个历史比较悠久的服务出现了主从延迟。即写库写入n秒后,从库才能读到正确的数据。

主从延迟产生的原因:

  1. 当主库的TPS并发较高时,产生的DDL数量超过slave一个sql线程所能承受的范围。

  2. slave的大型query语句产生了锁等待。

主从延迟的解决方案

短期解决方案(治标)

  1. 优化 MySQL 配置。

  2. 提高 MySQL 到5.6版本以上。(5.6后支持多线程,提高了效率)。

  3. 增加从库,减少单从库的压力。(对原因2有效)

  4. 将时延要求高的场景,读写库。

长期解决方案(治本)

  1. 优化耗时SQL,优化索引。

  2. 写入主库的时候,确保数据都同步到从库了之后才返回这条数据写入成功,当然如果有多个从库,你也必须确保每个从库都写入成功。显然,这个方案对性能和时间的消耗是极大的,不推荐。

  3. 引入Redis或者其他NoSQL数据库,查的时候先查Redis,等从库数据库都同步完成,再清除Redis

  4. 预估吞吐量上限,采取缓存、限流、降级等方法,来应对大量流量。

    版权声明:本文内容来自简书>作者 : 齐舞647,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
    本作品采用知识共享署名-非商业性使用-禁止演绎 2.5 中国大陆许可协议进行许可。
    原文链接:https://www.jianshu.com/p/04c8c4f62cd5
    如有涉及到侵权,将立即予以删除处理。
    在此特别鸣谢:简书博主>齐舞647的创作。
    此篇文章所有版权归原作者所有,与本公众号无关,商业转载请联系作者获得授权,非商业转载请注明出处。
    复制


    文章转载自巴韭特锁螺丝,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

    评论