首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

MySQL主从复制与读写分离工作原理

一、MySQL主从复制工作原理 1、MySQL支持复制类型 1)基于语句复制。在服务器上执行sql语句,在从服务器上执行同样语句,MySQL默认采用基于语句复制,执行效率高。...2、复制工作过程 1)在每个事务更新数据完成之前,master在二进制日志记录这些改变。写入二进制日志完成后,master通知存储引擎提交事务。...首先slave开始一个工作线程(I/O),I/O线程在master上打开一个普通连接,然后开始binlog dump process。...3、MySQL读写分离原理 读写分离就是在主服务器上修改,数据会同步到从服务器,从服务器只能提供读取数据,不能写入,实现备份同时也实现了数据库性能优化,以及提升了服务器安全。...目前较为常见MySQL读写分离分为两种 1)基于程序代码内部实现 在代码根据select 、insert进行路由分类,这类方法也是目前生产环境下应用最广泛

25910
您找到你想要的搜索结果了吗?
是的
没有找到

MySQL复制原理与流程

MySQL复制原理与流程1. 复制原理概述MySQL复制是指将一个数据库实例数据复制到另一个数据库实例,使两个实例数据保持一致。...MySQL复制原理基于主从模式,其中一个数据库实例充当主服务器(Master),负责接收并处理客户端写操作;其他数据库实例充当从服务器(Slave),负责接收并处理主服务器二进制日志(Binary...从服务器将解析后操作内容逐条应用到自己数据库,实现数据复制。3. 复制过程关键机制在MySQL复制过程,涉及到了一些关键机制,包括二进制日志、复制线程和复制事件。...3.2 复制线程复制线程是MySQL在从服务器上运行一个后台线程,负责从主服务器获取二进制日志、解析二进制日志并将其应用到本地数据库。...了解MySQL复制原理和流程对于理解和配置复制功能具有重要意义。

40330

彻底搞懂MySQL主从复制工作原理 2+3+3+4

B站搜索“乐哥聊编程“有本篇文章配套视频‍ https://www.bilibili.com/video/BV1v841187jy 什么是主从复制mysql3.23版本开始,mysql官方就开始提供主从复制...,最简单主从复制架构就是有两个mysql节点,一个作为主节点,用户可以进行读写,另外一台作为从节点,从节点只接受主节点同步过来数据,相当于是数据备份 主从复制解决了哪些问题 读写分离 数据备份 高可用...架构扩展 有哪几种主从形式 一主多从(一从) 读写分离 HA 多主一从 报表统计 双主复制 互相备份 读写负载均衡 主从级联复制 缓解主节点IO压力 主从复制工作原理 重要三个线程 Log...relay log 用来保存从节点I/O线程接受bin log日志,作为中继日志存在 工作过程 从节点执行 start salve,开启主从复制,从节点I/O线程与主节点建立连接,请求同步数据 主节点接受从节点数据同步请求...SQL线程 监测到relay log 内容有变化,会将relay追加内容解析成sql,然后依次执行sql,实现数据同步 主从复制工作模式 异步复制 mysql默认复制模式,当主节点将数据写到binlog

35120

mysql复制系列1-复制基本原理

dba面试时候基本上都会被问复制原理,但你真的了解吗? 复制有几个线程(分别介绍一下作用) 主库二进制日志是主库主动推送到从库,还是从库去请求?...其实复制有很多知识点,我们先从复制基本原理讲起 复制原理: x.jpg 主库上所有数据变更(DDL,DML等)都会被记录到自己binlog日志,从库利用从主库传输来binlog进行回放来模拟主库数据变更...所以主从复制原理是: 用户提交数据更改,主库把所有数据更改写进binlog日志,主库通过binlog dump线程把二进制日志推送给slave(这个时候从库是被动接收数据,主库主动推送) 从库...relay log日志内容,按照顺序进行回放,并将数据变更写入本地数据文件,这样就是实现了数据在主从数据库实例之间同步 每一对主从关系中都有三个线程 主库上 binlog dump线程(负责推送...binlog日志给io线程) 从库i/o线程(负责接收主库binlog日志并写入relay log) 从库sql线程(复制回放relay log日志主库变更操作) 主库二进制日志是主库主动推送到从库

49941

一定要弄懂MySQL复制原理

而这在海量并发访问互联网业务完全不敢想象。所以除了业务架构,还要做好可用性架构设计。...今天我们就来学习 MySQL 高可用架构中最基础、最为核心内容:MySQL 复制(Replication)。 MySQL 复制架构 数据库复制本质上就是数据同步。...MySQL 数据库是基于二进制日志(binary log)进行数据增量同步,而二进制日志记录了所有对于 MySQL 数据库修改操作。...在默认 ROW 格式二进制日志,一条 SQL 操作影响记录会被全部记录下来,比如一条 SQL语句更新了三行记录,在二进制日志中会记录被修改这三条记录前项(before image)和后项(after...可以在 mysql 命令行下使用命令 SHOW BINLOG EVENTS 查看某个二进制日志文件内容,比如上述删除操作发生在二进制日志文件 binlog.000004 ,你可以看到:

19420

MySQL 主从复制原理和配置

主从复制原理: 分为同步复制和异步复制,实际复制架构中大部分为异步复制。...复制基本过程如下: 1).Slave上面的IO进程连接上Master,并请求从指定日志文件指定位置(或者从最开始日志)之后日志内容; 2).Master接收到来自SlaveIO进程请求后,通过负责复制...返回信息除了日志所包含信息之外,还包括本次返回信息已经到Master端bin-log文件名称以及bin-log位置; 3).SlaveIO进程接收到信息后,将接收到日志内容依次添加到Slave...端relay-log文件最末端,并将读取到Master 端 bin-log文件名和位置记录到master-info文件,以便在下一次读取时候能够清楚告诉Master“我需要从某个bin-log...mysql> create database abc; mysql> show databases; +--------------------+ | Database | +-----------

784120

Mysql主从复制搭建及原理

这次来了解一下MySQL主从复制,为什么要用主从复制?是什么原理?...MySQL主从复制带来很大好处首先那就是数据复制一致性,在生产环境中保证了数据备份,而且主宕机后,从节点可以也可以保证正常工作, 模式有很多一主一从,一主两从,一主多从等等… 原理都是一样...:主节点将带有ddl和dml语句记录到自己二进制日志bin-log,然后从节点通过I/O线程将二进制日志获取到自己中继日志relay-log,从节点通过sql线程将自己中继日志relay-log...命令进行执行,从而实现主从复制结构 本次实验环境两台服务器[一主一从] 服务器IP Centos版本 服务 192.168.2.10 CentOS Linux release 7.6.1810 (...= password('新密码'); 8.至此MySQL安装完毕 9.进行主从复制设置修改配置文件 配置Master主库机器 开启binlog 设置mysql唯一编号(mysql5.7即更高版本新加参数

34810

Mysql主从复制搭建及原理

这次来了解一下MySQL主从复制,为什么要用主从复制?是什么原理?...MySQL主从复制带来很大好处首先那就是数据复制一致性,在生产环境中保证了数据备份,而且主宕机后,从节点可以也可以保证正常工作, 模式有很多一主一从,一主两从,一主多从等等… 原理都是一样...:主节点将带有ddl和dml语句记录到自己二进制日志bin-log,然后从节点通过I/O线程将二进制日志获取到自己中继日志relay-log,从节点通过sql线程将自己中继日志relay-log...命令进行执行,从而实现主从复制结构 本次实验环境两台服务器[一主一从] 服务器IP Centos版本 服务 192.168.2.10 CentOS Linux release 7.6.1810 (...= password('新密码'); 8.至此MySQL安装完毕 9.进行主从复制设置修改配置文件 配置Master主库机器 开启binlog 设置mysql唯一编号(mysql5.7即更高版本新加参数

26320

浅谈MySQL分页查询工作原理

前言 MySQL 分页查询在我们开发过程还是很常见,比如一些后台管理系统,我们一般会有查询订单列表页、商品列表页等。...示例: SELECT * FROM `goods` order by create_time limit 0,10; 在了解order by和limit工作原理之前,我们首先回顾下 MySQL...接下来,我们分别讲解这两种排序工作原理。 2.2.1 全字段排序 MySQL 会给每个线程分配一块内存用于排序 sort_buffer。...若排序内容不能全部放入内存,则分批次将排好序内容放入文件,然后将多个文件进行归并排序 若排序包含 limit 语句,则使用堆排序优化排序过程 3. limit 工作原理 Server 层维护了一个称作...先查询 510 条数据,按照ORDER BY工作原理进行条件查询和排序,最后汇总结果在返回给客户端之前,MySQL 会截取第 501 到 510 条数据,最后把这 10 行记录返回给前端。

1.4K30

SwiftUI 布局工作原理

有些事情已经解释过了,有些可能是你自己弄明白,但更多是你在这一点上想当然事情,所以我希望一个详细探索能真正为 SwiftUI 工作方式提供一些启示。...SwiftUI 布局工作原理 ---- 所有的 SwiftUI 布局都有三个简单步骤,理解这些步骤是每次获得优秀布局关键。步骤如下: 父视图提供一个大小并询问其子视图大小。...这意味着当我们应用修饰符时,进入层次结构实际视图是修改后视图,而不是原始视图。 在我们简单background()示例,这意味着ContentView顶层视图是背景,而内部是文本。...background(Color.red)),文本视图成为其背景子视图。当涉及到视图及其修改器时,SwiftUI有效地从下到上工作。...当我们在background()中使用它时,简化布局对话是这样工作: 背景:嘿,文本,你可以有整个屏幕,你想要多少? 文本:我需要X乘Y点;我不需要其余。 背景:好

3.7K20

MySQL蠕虫复制操作指南

蠕虫复制能快速往表增添数据,一般用于表结构稳定性测试。...对test2 进行蠕虫复制: 1)从test1 获取原始数据(test1 和test2 表结构必须相同) insert into test2 select * from test1; 此时,test2...记录数为 1 2)test2 蠕虫复制操作: INSERT INTO test2 SELECT * FROM test2; 你会发现报错: mysql> insert into test2 select...----+ | count(*) | +----------+ | 32 | +----------+ 1 row in set (0.01 sec) 所以,若表有主键并且有自增长,那不复制主键值即可...还有一种,主键没有自增长,那不复制主键可以吗?答案是不行。因为主键前提是不能为空,赋值则发生主键冲突,不赋值则引发非空约束(多谢评论区老哥,以前没有考虑到这种情况)。

90510

深入了解MySQL主从复制原理

复制原理 MySQL主从复制支持两种方式: 基于行 基于语句 基于语句复制MySQL3.23就已经有了,而基于行方式则在5.1才实现。...创建数据库 然后我创建了一个名为studentDB,其Event_type是Query,这个event内容为CREATE DATABASE student DEFAULT CHARACTER SET...复制模型 平常开发,其实很少说一上来就直接搞主从架构。费时间、费钱还引入了额外复杂度,最后发现投入了这么多一个单MySQL服务器就完全能handle。...但是在MySQL 5.5以及之前,都只能将复制进度记录在relog-log.info文件。...所以在MySQL 5.7时引入了无损半同步复制,增加了参数rpl_semi_sync_master_wait_point值,在MySQL 5.7值默认为after_sync,在MySQL 5.6默认值为

40610

Mysql索引原理(三)」MysqlHash索引原理

哈希表哈希码是顺序,导致对应数据行是乱序。...如果哈希冲突很多,一些索引维护操作代价会很高。 ? 如果从表删除一行,需要遍历链表每一行,找到并删除对应行引用,冲突越多,代价越大。...自定义哈希索引 在InnoDB,某些索引值被使用非常频繁时候,它会在内存基于B+Tree基础上再创建一个哈希索引,使其不必要在从根节点就行查找。...必须使用MysqlGIS相关函数如MBRCONTAINS()等来维护数据。Mysql GIS并不完善,大部分人不会使用到这个特性。...开源关系数据库对GIS解决方案做得比较好是PostgreSQLPostGIS。 全文索引 全文索引是一种特殊类型索引,它查找是文本关键字,而不是直接比较索引中值。

8.4K11

演讲实录:MySQL 8.0 复制技术

在近期第七届数据技术嘉年华上,甲骨文MySQL研发工程师宋利兵做了“MySQL-8.0复制技术”为主题演讲,介绍了MySQL-8.0异步复制和Group Replication复制发展方向,...复制简介和框架 01 定义 ? 02 MySQL复制技术简单框架 ?...binary log是MySQL复制基础,MySQL这些日志称为逻辑日志,里面记录是SQL语句级别的,操作是表行数据,它不关心数据在引擎里面是怎么存储,存储格式是什么样。 ?...异步复制是为MySQL使用,以及保障MySQL数据高可用起到了很直观作用。一直到现在,也一直在使用异步复制模式,随着用户越来越多,使用场景越来越多,对复制技术也提出了更高要求。...比如如果它在组是slave角色,就保持read-only,如果它被选为master,则会切换为read-write。 当一个节点离开组时候也是一样原理,会自动切换自己属性。

1.1K50

mysql主从复制1032错误

1032错误----现在生产库好多数据,在从库误删了,生产库更新后找不到了,现在主从不同步了,再跳过错误也没用,因为没这条,再更新还会报错 问题 出现了主从不一致,开始分析原因。...slave备机不存在该记录,但是主机master删除时无需报1032错误,可以通过my.cnf可配置slave-skip-errors=1032 从而跳过日志1032 ERROR报错。...) 上面的解决方式一般解决不了问题或无法永久解决问题时可以采取这种方式: 根据报错信息binlog日志文件bin.000094和endlogpos位置537072939来分析binlog,查找实际引发问题...可以看到是一条更新语句,UPDATE infosys_login. business_login_user_auth_info where XXX ... @1=272998577393905664对应是库...id,去从库查看时,这条记录确实是被开发人员手动删除了,从而造成了1032错误。

6.7K30
领券