MySQL分布式主从库读写测试与主从复制基础

一、主从库读写测试步骤
1. 环境准备:
- 搭建主从架构(1主1从或多从),确保主从复制正常(可通过 SHOW SLAVE STATUS 查看IO和SQL线程状态)。
- 主库配置 server-id=1 ,从库配置 server-id=2 ,主库开启二进制日志( log-bin )。
2. 读写测试核心操作:
- 写操作测试:在主库执行增删改(如 INSERT/UPDATE/DELETE ),观察从库数据是否同步(可通过定时查询或触发器验证)。
- 读操作测试:在从库执行查询(如 SELECT ),确认数据与主库一致,同时测试从库负载能力(可通过压测工具如 sysbench 模拟并发读)。
- 异常场景测试:
- 主库宕机:验证从库是否可切换为读写模式(需手动或通过中间件如MHA自动切换)。
- 网络延迟:模拟主从网络波动,观察数据同步延迟( Seconds_Behind_Master 参数)。
3. 关键指标记录:
- 同步延迟时间、读写性能差异、高并发下的一致性表现。
二、主从复制原理
1. 核心机制(基于二进制日志):
- 主库(Master):将数据变更记录到二进制日志(Binlog),包括DDL和DML操作。
- 从库(Slave):通过两个线程实现复制:
- IO线程:连接主库,读取Binlog并写入本地中继日志(Relay Log)。
- SQL线程:解析中继日志,在从库执行相同操作,实现数据同步。
2. 复制模式(3种):
- 异步复制:主库写入Binlog后立即返回,不等待从库确认(性能高,一致性差)。
- 半同步复制:主库等待至少一个从库确认接收Binlog后返回(性能和一致性平衡)。
- 全同步复制:主库等待所有从库确认后返回(一致性高,性能低)。
3. 常见问题与面试考点:
- 主从延迟:高并发下从库同步慢,解决方案:升级硬件、读写分离、分库分表。
- 数据一致性:异步复制可能丢失数据,可通过半同步或中间件(如Canal)弥补。
- 切换与故障恢复:手动切换主从时需锁定主库( FLUSH TABLES WITH READ LOCK ),避免数据不一致。
三、面试场景
- 结合场景说优势:主从架构用于读写分离,减轻主库压力,适合读多写少场景(如电商商品页查询)。
- 提扩展知识:主从是分布式基础,可延伸到集群架构(如MGR、InnoDB Cluster)或中间件(MyCat、ShardingSphere)。
全部评论
只会点点点可以嘛?
点赞 回复 分享
发布于 06-17 10:58 广东
必须爆赞
点赞 回复 分享
发布于 06-17 09:52 山东

相关推荐

06-18 14:34
门头沟学院 Java
黑皮白袜臭脚体育生:你现在应该先跟妈妈打电话聊,跟她讲讲来上海涨了很多见识,看到了一些什么风景,只是发现工作也没那么好找,然后说想爸爸了,也想她了,感觉现在压力好大,这样一个是可以减轻你的压力,毕竟你的压力一部分就来源于提前立了flag但是又做不到,被架住了,主动找妈妈打电话说就把这个事揭过去了,诉苦还能顺便缓解精神压力,一个是可以减轻妈妈的精神压力,因为她也不知道你什么情况,总会担心,加上爸爸上个月去世,即使她不说心里肯定也是很悲伤的,你这个时候跟她打电话会让她也振作起来,为母则刚,孩子过得不好她就会从悲伤中转移注意力到你身上,会说让你不急,工作慢慢找,你再顺势跟她说好的,让她不要因为伤心过度坏了身体,家里还有你在,即使工作不好找也会坚持努力下去,哪天机会来了就成功了,这样进一步降低她的压力,也表明你不是收到压力就退缩的懦夫,这样做至少能在一两个星期到一两个月内把压力降低到比较小的程度,如果一直维持高压状态即使机会来了也抓不住,全局来看降压势在必行,然后在上海没找到工作之前不要频繁打电话,没什么东西能讲,最后尬聊只会起反作用,应该隔段时间就给妈妈买点上海的特产寄回去,这样她感受到你孝心也不会后面主动施压你,进一步降低在找到工作前这段时间的压力,更利于找工作的沉淀和面试发挥,不用太贵的,礼轻情意重,当然如果要买贵的也可以,送佛送到西,我在放心借给你存了20w,自己申请自己去取吧
点赞 评论 收藏
分享
评论
2
3
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务