mysql使用主从同步时如何解决从库数据延迟导致的不一致?

mysql使用主从同步,由于网络、下游数据库执行sql。将导致有一定的延迟型。

mysql提供半同步复制或者异步复制。半同步复制对主库的吞吐量有影响,该方案备选。

使用异步复制时,不考虑宕机导致的数据不一致。主要解决由于实时性的延迟导致的数据不一致,有什么好的解决方案?

搜索到的结果:

半同步复制。暂时不考虑
缓存。
中间件。使用中间件向下游数据库同步,并由中间件控制访问主库或者从库。

使用缓存或中间件时,sql关联查询时逻辑复杂不容易实现

参与4

1同行回答

renou2012renou2012  数据库管理员 , KE
在相同硬件的条件下,这个原因有各方面的简单点而言,主要分成ddl和ddl常规而言DDL都是可控的,耗时时间长的ddl 应该尽量避免在业务时期运行,在窗口时期,主备同时执行DDL(主库的ddl需设置session不写binlog) 可以尽可能的减少ddl的影响DML的操作就相对比较复杂了,主库的大事务,一...显示全部

在相同硬件的条件下,这个原因有各方面的简单点而言,主要分成ddl和ddl
常规而言DDL都是可控的,耗时时间长的ddl 应该尽量避免在业务时期运行,在窗口时期,主备同时执行DDL(主库的ddl需设置session不写binlog) 可以尽可能的减少ddl的影响
DML的操作就相对比较复杂了,主库的大事务,一个事务可能有几百几千条的dml,同时,如果dml没有相应的索引优化,造成的更多延迟
简化你的dml 事务  分解一个事务中的dml提交
优化索引,保证所有的dml都能做到走索引,必须走索引(小表的情况视情况而定,不过考虑到并发的情况下 尽可能的有相应的主键索引,检索索引)
合理的设计表结构,减少大字段的频繁提交 
基本上会做到毫秒级的延迟。
当然,如果你的从库不仅仅的从库可能还有其他只读查询,那么可以考虑用更好的硬件性能提升处理能力

收起
金融其它 · 2020-04-16
浏览5865

提问者

冰玉
数据库开发工程师上海海典

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2020-04-16
  • 关注会员:2 人
  • 问题浏览:6652
  • 最近回答:2020-04-16
  • X社区推广