Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Mysql 复制的延迟优化

Mysql 复制的延迟优化

作者头像
dys
发布于 2018-04-03 09:59:36
发布于 2018-04-03 09:59:36
9970
举报
文章被收录于专栏:性能与架构性能与架构

Mysql 复制过程中,数据延迟是很重要的问题,无法避免,只能尽量优化,使延时尽可能的小

要想优化复制过程,我们先看下复制的整个过程,看其中哪些步骤可以优化

这个过程中有3个主要的时间点

1. 主库写入二进制日志的时间

例如,有一个大的事务,假设要更新3万行数据,需要执行3分钟,那么只有等到全部更新完成,事务提交之后,才会被写入二进制日志

这就影响了binlog写入速度,可以分析一下,这个大的事务是否可以分成多个小事务,如果业务逻辑允许,可以一个事务更新3千行,分为10个事务,每个事务完成后就可以迅速复制到从库

这个过程中需要尽可能的加快写入速度,尽量小步快跑

2. 二进制日志的传输时间

图中的2、3步是日志传输过程,包括网络传输时间,和磁盘写入时间

一般主从服务器都在局域网内,网络不成问题,日志的写入方式是顺序写,所以,磁盘写操作也没问题

这个过程的主要优化思路就是尽量减少日志的传输量

需要分析一下数据库,看是不是所有库都需要进行复制,如果有不必要的库,可以通过参数 Binlog_Ignore_DB 进行忽略

3. 从服务器中SQL回放的时间

默认情况下只有一个SQL线程,串行执行日志的回放过程

Mysql 5.7 已经很好的支持了多线程复制,如果有可能,可以选择这个版本,然后设置好多线程复制,来加快回放速度

5.7 多线程复制的配置可以参考之前的一篇文章

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2016-08-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 JAVA高性能架构 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
MySQL 复制 - 性能与扩展性的基石 1:概述及其原理
MySQL 内置的复制功能是构建基于 MySQL 的大规模、高性能应用的基础,复制解决的基本问题是让一台服务器的数据与其他服务器保持同步。
北国风光
2019/04/11
4350
MySQL 复制 - 性能与扩展性的基石 1:概述及其原理
使用Xtrabackup对MySQL做主从复制
mysqldump对于导出10G以下的数据库或几个表,还是适用的,而且更快捷。一旦数据量达到100-500G,无论是对原库的压力还是导出的性能,mysqldump就力不从心了。Percona-Xtrabackup备份工具,是实现MySQL在线热备工作的不二选择,可进行全量、增量、单表备份和还原。(但当数据量更大时,可能需要考虑分库分表,或使用 LVM 快照来加快备份速度了)。 2.2版本xtrabackup能对InnoDB和XtraDB存储引擎的数据库非阻塞地备份,innobackupex通过perl封装了一层xtrabackup,对MyISAM的备份通过加表读锁的方式实现。2.3版本xtrabackup命令直接支持MyISAM引擎。
阿dai学长
2019/04/03
2.3K0
mysql复制系列5-多线程复制
mysql复制中最常见的问题就是主从复制延迟问题,mysql从一开始不支持并行复制,到一步一步的优化改进多线程复制,下面介绍一下mysql复制单线程到多线程复制的历程
wangwei-dba
2021/05/14
1.3K0
MySQL主从复制 —— 作用、原理、数据一致性,异步复制、半同步复制、组复制
二进制日志(BINLOG)记录了所有的 DDL(数据定义语言,创建库、表)语句和 DML(数据操纵语言,增删改)语句,但不包括数据查询(SELECT、SHOW)语句。
寻求出路的程序媛
2025/02/06
5211
MySQL主从复制 —— 作用、原理、数据一致性,异步复制、半同步复制、组复制
MySQL中关于复制的一些知识点
今天回家重新看了看《高性能MySQL》这本书里面复制一节,每次看都有不同的收获,这里把我自己觉得比较重要的一些点罗列出来,大家可以温故知新一下:
AsiaYe
2019/11/06
2980
MySQL 复制原理详解
腾讯云开发者社区
2017/06/15
3.1K0
MySQL 复制原理详解
看完这篇还不懂 MySQL 主从复制,可以回家躺平了~
我们在平时工作中,使用最多的数据库就是 MySQL 了,随着业务的增加,如果单单靠一台服务器的话,负载过重,就容易造成宕机。
浅羽技术
2021/06/22
5910
看完这篇还不懂 MySQL 主从复制,可以回家躺平了~
MySQL复制中使用的线程
MySQL的主从复制是一项重要功能,可以利用其实现读写分离、高可用,及备份等目的。众所周知,MySQL是一个单进程、多线程的数据库,在各项工作中调用了不同的线程,本篇将介绍在主从复制中所使用的线程。
MySQLSE
2024/04/15
1830
MySQL复制中使用的线程
MySQL 复制延迟怎么处理
‍我们在工作过程中,可能多多少少会遇到主从延迟的情况,这一节内容我们就来聊聊什么情况可能出现主从延迟,怎样判断延迟,存在延迟怎么处理。
数据库交流
2022/12/01
1.6K0
MySQL复制以及调优
复制步骤: (1). master记录更改的明细,存入到二进制日志(binary log)。 (2). master发送同步消息给slave。 (3). slave收到消息后,将master的二进制日志复制到本地的中继日志(relay log)。 (4). slave重现中继日志中的消息,从而改变数据库的数据。
闻说社
2025/03/13
1500
MySQL复制以及调优
MySQL 主从复制的问题及解决方案
MySQL 主从复制的问题及解决方案
Java架构师必看
2021/05/06
4540
MySQL 主从复制的问题及解决方案
关于主从延迟,一篇文章给你讲明白了!
在实际的生产环境中,由单台MySQL作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面
MySQL技术
2021/07/05
6450
关于主从延迟,一篇文章给你讲明白了!
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log
MySQL作为最流行的开源数据库,其重要性不言而喻。日志是mysql数据库的重要组成部分,记录着数据库运行期间各种状态信息。常见的日志有以下几种:
寻求出路的程序媛
2025/02/06
5330
MySQL日志详解——日志分类、二进制日志bin log、回滚日志undo log、重做日志redo log
MySQL 主从复制解决了什么问题?出现同步延迟如何解决?
日志文件中记录的到底是什么呢?mysql支持了两种日志格式,这两种日志格式也体现了各自的复制方式
民工哥
2021/05/11
1K0
MySQL复制性能优化和常见问题分析
二进制日志文件并不是每次写的时候都会同步到磁盘,当发生宕机的时候,可能会有最后一部分数据没有写入到binlog中,这给恢复和复制带来了问题。当sync_binlog=1表示每写缓冲一次就同步到磁盘,表示同步写磁盘的方式来写binlog。也就是说每当向MySQL提交一次事务,MySQL将进行一次fsync之类的磁盘同步命令来将binlog_cache的数据强制刷到磁盘中sync_binlog的值默认为0,sync_binlog=0时表示采用操作系统机制进行缓冲数据同步。采用sync_binlog=1时,会增加磁盘IO的次数,会影响写入性能。sync_binlog=1时,并不是100%安全,会存在相应的问题。比如说使用Innodb引擎时,在一个事务发出commit前,会将binlog立即刷到磁盘中。如果这时候已经写入到binlog中,但是还没有提交就已经挂了,那么MySQL重启时,会将通过Redo log、Undo log将这个事务回滚掉,但是binlog已经记入了该事务信息,不能回滚掉。所以我们需要设置innodb_support_xa=1确保MySQL服务层的binlog和MySQL存储引擎层的Redo log、Undo log之间的数据一致性。
用户2032165
2018/12/07
1.2K0
MySQL复制性能优化和常见问题分析
MySQL 复制 - 性能与扩展性的基石 3:常见问题及解决方案
主备复制过程中有很大可能会出现各种问题,接下来我们就讨论一些比较普遍的问题,以及当遇到这些问题时,如何解决或者预防问题发生。
北国风光
2019/04/11
5790
MySQL 复制 - 性能与扩展性的基石 3:常见问题及解决方案
MySQL集群架构[通俗易懂]
题记: 文章内容输出来源:拉勾教育Java高薪训练营。 本篇文章是 MySQL 学习课程中的一部分笔记。
全栈程序员站长
2022/09/18
1.5K0
MySQL集群架构[通俗易懂]
MySQL5.7并发复制演进
MySQL5.5及以前的复制 一般主从复制有三个线程且都是单线程: Binlog Dump(主) --> IO Thread(从) --> SQL Thread(从)。 1、master节点的Bin
MySQL轻松学
2018/03/09
1.5K0
MySQL5.7并发复制演进
搭建Mysql主从复制
MySQL主从复制是一种常用的数据库高可用性解决方案,可以提高数据库的可用性和性能。本教程将介绍如何搭建MySQL主从复制。
夕阳也是醉了
2023/10/16
4430
搭建Mysql主从复制
组复制要求和限制 | 全方位认识 MySQL 8.0 Group Replication
--upgrade=minimal:当MySQL Server指定--upgrade=minimal选项启动时,如果发现需要执行更新,则,在执行升级操作完成之后,可能会导致组复制无法启动,因为minimal选项在执行更新时,只会更新数据字典、information_schema、performance_schema,但不会更新组复制内部所依赖的系统表(--upgrade选项在MySQL 8.0.16版本引入,之后,升级操作将不再需要单独使用mysql_upgrade工具,默认情况下--upgrade选项值为AUTO,表示自动判断是否需要执行完整的更新操作)。
老叶茶馆
2020/11/11
1.1K0
组复制要求和限制 | 全方位认识 MySQL 8.0 Group Replication
相关推荐
MySQL 复制 - 性能与扩展性的基石 1:概述及其原理
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档