MySQL:DBA看主从延迟

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

目录

1、从DBA的视角来看影响主从延迟因素

[1.1 主库更新频繁或主库有大事务](#1.1 主库更新频繁或主库有大事务)

[1.1.1 程序相关](#1.1.1 程序相关)

[1.1.2 变更相关](#1.1.2 变更相关)

[1.2 从库负载较高(CPU负载高、IO负载高、网络负载高)](#1.2 从库负载较高(CPU负载高、IO负载高、网络负载高))

2、主从延迟的应对策略

[2.1 化解大事务](#2.1 化解大事务)

[2.2 控制从库读](#2.2 控制从库读)

[2.3 控制主库写](#2.3 控制主库写)

[2.4 引入其他的存储](#2.4 引入其他的存储)

总结


提示:以下是本篇文章正文内容,下面案例可供参考

1、从DBA的视角来看影响主从延迟因素

1.1 主库更新频繁或主库有大事务

1.1.1 程序相关

1.1.1.1 避免大事务方式做数据操作,把大事务拆分为小事务。

例如,我一个事务里要对10w行数据做变更,那么这就是一个典型的大事务,我们可以采取多批次分批处理的方式,将10w行数据的变更分到1000次小事务中,每个事务处理的变更数量就变成了100,加快了处理速度,减少了主从延迟。

1.1.1.2 过高的并发适当做流量限制

这个很好理解,频繁的写操作,代表的是频繁的IO资源使用

1.1.2 变更相关

1.1.2.1 DML变更

单SQL扫描行数大于10w的不建议直接执行,需改为基于主键或选择性高的索引进行变更

1.1.2.2 DDL变更

存在延迟风险的,错峰执行,避免对业务造成长时间的影响

工具手动执行(工具可控制从库延迟时间和不锁表,对延迟和锁表敏感业务场景)

1.2 从库负载较高(CPU负载高、IO负载高、网络负载高)

对延迟敏感的业务从库避免执行长的查询语句------慢SQL

例如复杂的嵌套查询语句,没走索引且数据量大的SQL

2、主从延迟的应对策略

基于以上影响主从延迟的因素,我们不难总结有以下三个方面去减少主从延迟。主从延迟不能完全避免,只能尽可能的缩短,或者采取其他的策略去降低延迟带来的影响。

2.1 化解大事务

编写程序或者SQL的时候,需要注意

我司的SQL提交平台,会列出来影响扫描影响行数,帮助做决策。

2.2 控制从库读

这个就得从业务上去把控了

比如我们经常写一些跑批的定时任务,那么就得避开业务高峰期。

我们直接读库的操作,如果数据变化不是非常频繁,可以短暂的借助于分布式缓存进行一个缓冲过渡

管理系统经常要把各种数据关联到一起显示及过滤,在提升复杂度的同事,也可能会导致索引失效,扫描的行数急剧上升,可以寻求其他的替代方案,避免直接对数据库进行复杂嵌套查询。

2.3 控制主库写

2.4 引入其他的存储

分布式缓存,短时间内不失为一个绝佳的方案,读写快


总结

每天进步一点点!

相关推荐
阳光九叶草LXGZXJ6 小时前
达梦数据库-报错-15-列【XXX】长度超出定义
linux·运维·数据库·sql·学习
字节渡客6 小时前
Redis键明明过期了,业务还在读到旧数据
数据库·redis·spring
OnlineProxy9 小时前
亚马逊多账号运营:如何在规避“关联封号”风险的同时实现电商规模化扩张
服务器·数据库·redis
辻弋20110 小时前
五年前的旅行视频糊成马赛克?Video2X用Real-ESRGAN逐帧重建细节,但只支持Windows、集显用户建议直接放弃
服务器·数据库·windows·游戏引擎·电脑
可乐鸡翅yeah_11 小时前
业务中 M3U8 水印相关坑,硬水印和动态水印区别
前端·网络·数据库·ffmpeg·m3u8在线
石头麻辣鱼11 小时前
Bamboo 调度系统 OceanBase 适配实战:存储过程迁移踩过的三个大坑
数据库
龙亘川12 小时前
数智驱动民政升级 精准守护民生保障
大数据·数据库·人工智能
念何架构之路12 小时前
zap扩展生态与总结
java·前端·数据库
晚安日记wanna13 小时前
MySQL 回表为什么这么慢?5 种优化手段逐个拆解
数据库·mysql·性能优化
第七页独白13 小时前
汽车零件厂如何通过 QMS 真正落地 IATF 16949——QMS软件系统:品质检验-内审稽核-8d客诉管理:全星质量管理软件系统
java·前端·数据库