MySQL进阶45讲【25】备库为什么会延迟好几个小时? 我就是我 2024-05-07 22:27 82阅读 0赞 ## 1 前言 ## 在上一篇文章中,介绍了几种可能导致备库延迟的原因。在这些场景里,不论是偶发性的查询压力,还是备份,对备库延迟的影响一般是分钟级的,而且在备库恢复正常以后都能够追上来。 但是,如果备库执行日志的速度持续低于主库生成日志的速度,那这个延迟就有可能成了小时级别。而且对于一个压力持续比较高的主库来说,备库很可能永远都追不上主库的节奏。 这就涉及到本篇文章介绍的话题:备库并行复制能力。 为了便于理解,我们再一起看一下[MySQL进阶45讲【23】MySQL是怎么保证主备一致的?][MySQL_45_23_MySQL]的主备流程图。 ![在这里插入图片描述][0e7accf909fe46aa9a8c13e7cf764284.png] 谈到主备的并行复制能力,我们要关注的是图中黑色的两个箭头。一个箭头代表了客户端写入主库,另一箭头代表的是备库上sql\_thread执行中转日志(relay log)。如果用箭头的粗细来代表并行度的话,那么真实情况就如图所示,第一个箭头要明显粗于第二个箭头。 在主库上,影响并发度的原因就是各种锁了。由于InnoDB引擎支持行锁,除了所有并发事务都在更新同一行(热点行)这种极端场景外,它对业务并发度的支持还是很友好的。所以,在性能测试的时候会发现,并发压测线程32就比单线程时,总体吞吐量高。 而日志在备库上的执行,就是图中备库上sql\_thread更新数据(DATA)的逻辑。如果是用单线程的话,就会导致 [MySQL_45_23_MySQL]: https://blog.csdn.net/qq_37284798/article/details/136185155 [0e7accf909fe46aa9a8c13e7cf764284.png]: https://image.dandelioncloud.cn/pgy_files/images/2024/05/07/064bb28688d74068be0f6e27cfb7de40.png
相关 MySQL进阶45讲【12】为什么你的MySQL偶尔会卡一下 MySQL进阶45讲【12】为什么你的MySQL偶尔会卡一下 淩亂°似流年/ 2024年05月07日 22:31/ 0 赞/ 93 阅读
相关 MySQL进阶45讲【10】MySQL为什么有时候会选错索引? MySQL进阶45讲【10】MySQL为什么有时候会选错索引? 绝地灬酷狼/ 2024年05月07日 22:31/ 0 赞/ 90 阅读
相关 MySQL进阶45讲【38】insert语句的锁为什么这么多? MySQL进阶45讲【38】insert语句的锁为什么这么多? 爱被打了一巴掌/ 2024年05月07日 22:28/ 0 赞/ 90 阅读
相关 MySQL进阶45讲【23】MySQL是怎么保证主备一致的? MySQL进阶45讲【23】MySQL是怎么保证主备一致的? 柔光的暖阳◎/ 2024年05月07日 22:27/ 0 赞/ 88 阅读
相关 《MySQL实战45讲》——学习笔记25 “主备延迟“ 正常情况下,主库执行更新生成binlog,binlog传到备库并被正确地执行,备库就能达到跟主库一致的状态,保证数据的最终一致性;但是,MySQL要提供高可用能力,只有最终一致 末蓝、/ 2023年09月23日 23:49/ 0 赞/ 65 阅读
还没有评论,来说两句吧...