首页 > 数据库 >Mysql的主从同步时延问题

Mysql的主从同步时延问题

时间:2024-07-22 16:08:58浏览次数:14  
标签:主库 binlog 同步 并行复制 时延 Mysql 从库 主从

主从同步延迟可以通过一些策略减少,从而减低对业务的影响

避免大事务和长事务

大事务和长事务会严重影响主从同步的效率,例如大规模的DELETE操作会生成大量的binlog,导致从库复制速度跟不上。

解决:通过分批操作缓解,例如一次1000条,减少每次操作的时间,减少对主从同步的影响。

启用从库的并行复制

mysql5.7就支持基于writeset的并行复制,从库可以同时处理多个事务,从而提高复制效率

从库的my.cnf文件配置

slave-parallel-type=LOGICAL_CLOCK
slave-parallel-workers=4

此外,主库的sync_binlog_delay_ms参数也可以适当调大这样主库生成的binlog可以更好地利用从库的并行复制能力,但也不能太大影响主库性能。

sync_binlog_delay_ms=10

一主一备多从的架构

避免让一台机器负载过大,采用一主一备多从的架构,将读写压力分散到多个从库上,降低单台从库的负载,提高整体系统的可用性和性能

主从对称部署:确保主从服务配置相同,避免因为硬件差异导致的性能瓶颈;(主库比从库配置高很多导致,在数据库同步迁移时候很慢)

业务层面优化:技术上的优化只能减少延迟,真正避免因为延迟带来的业务问题,需要在业务层面进行调整。例如,对于自己读数据从从库读取,而其他用户则从主库,这样既能保持数据的实时性,也能有效利用从库的读写分离优势。

 

标签:主库,binlog,同步,并行复制,时延,Mysql,从库,主从
From: https://www.cnblogs.com/cgy-home/p/18316211

相关文章

  • CentOS 7 安装MySQL
    一、前言这篇博客使用CentOS7系统进行操作,安装过程参考本人另一篇博客CentOS7的下载与安装所有操作都在root用户下进行二、下载MySQL的下载地址:https://downloads.mysql.com/archives/community/版本选择随意,这里以MySQL:8.0.28为例系统选择RedHatEnter......
  • Day07 MySQL 面试题 (三)
    MySQL面试题22、MySQL里记录货币用什么字段类型好NUMERIC和DECIMAL类型被MySQL实现为同样的类型,这在SQL92标准允许。他们被用于保存值,该值的准确精度是极其重要的值,例如与金钱有关的数据。当声明一个类是这些类型之一时,精度和规模的能被(并且通常是)指定。例......
  • Linux下MySQL的安装部署
    文章目录前言一、MySQL是什么?二、MySQL安装部署(两种)1.手动安装MySQL(1)下载MySQL安装包(2)解压压缩包至opt文件夹下(3)重命名mysql-8.0.33-linux-glibc2.12-x86_64文件夹(4)创建用户组和密码(5)为mysql用户授权(6)创建数据文件的存储位置(7)初始化MySQL数据库(8)编辑MySQL的配置文件(9)......
  • MySQL支持中文排序的实现方法
    在处理包含中文字符的数据库时,正确地实现中文排序是确保数据准确性和用户体验的关键。MySQL提供了多种方法来实现中文排序,这些方法主要涉及字符集(Charset)和排序规则(Collation)的设置。以下是三种常用的方法来支持中文排序:方法一:使用GBK编码GBK是一种常用于简体中文的字符编码......
  • 嵌入式C++、FreeRTOS、MySQL、Spring Boot和MQTT协议:智能零售系统详细流程介绍(代码示
    项目概述随着科技的发展,零售行业正经历着一场数字化转型。智能零售系统通过集成嵌入式技术和大数据分析,为商家提供了高效的运营管理工具。该系统的核心目标是提升顾客体验、优化库存管理、降低运营成本以及实现精准营销。本项目将结合多种技术栈,包括嵌入式硬件、嵌入式软件、......
  • SpringBoot利用MyBatis连接Mysql数据库时常见启动报错
    目录报错情况报错情况一:​编辑报错情况二:解决步骤一、解决命名问题1.mapper层的id是否和Dao层的方法名字相同2.检查namespace与Dao层的文件地址相同二、解决注解问题1.检查Controller层的注解是否正确和完整2.Dao层或者Mapper层的注解3.pojo层:实体类层Data注解(用来......
  • MySQL InnoDB事务隔离和并发控制面试题详解
    1.为什么MySQL使用B+树作为索引而不是B树?MySQL选择使用B+树作为索引主要有以下几个原因:减少IO次数,提高效率:B+树的所有数据都存储在叶子节点,非叶子节点只存储索引,树的高度较低,因此查找路径较短,减少了磁盘IO次数。查询效率更加稳定:由于数据仅存储在叶子节......
  • MySQL事务管理详解:特性、问题与解决方案
    什么是事务?事务是一个不可分割的数据库操作序列,也是数据库并发控制的基本单位,其执行的结果必须使数据库从一种一致性状态变到另一种一致性状态。事务是逻辑上的一组操作,要么都执行,要么都不执行。事务的四大特性原子性(Atomicity)原子性意味着事务中对数据库的一系列操作要......
  • MySQL体系结构与查询执行流程详解
    MySQL体系结构与查询执行过程详解MySQL是一个采用单进程多线程架构模式的关系型数据库管理系统。本文将详细介绍MySQL的体系结构及其查询语句的执行过程,并探讨性能优化的关键点。MySQL体系结构MySQL的架构为Client-Server架构。总体上,我们可以将MySQL的体系结......
  • MySQL 数据导出导入 脚本定时执行
    crontab安装yuminstall-ycrontab定时执行#添加定时任务crontab-e#编辑文件:每天早上6点执行06***sh/data1/mysql/backup/restore.sh#查看定时任务crontab-l全量导出脚本#!/bin/bashdata_dir="/data1/mysql/backup"if[!-d$data_dir];thenmkdi......