当前位置: 首页 > article >正文

MySQL高可用与扩展-主从复制读写分离分库分表

当单库压力越来越大时常见演进路线是先做主从复制再做读写分离如果数据量和写入压力继续增长就需要考虑分库分表。这三者解决的问题不同方案主要解决什么主从复制数据冗余、读扩展、故障切换基础读写分离缓解读请求对主库的压力分库分表解决单库、单表数据量和并发瓶颈主从复制的核心binlogMySQL 主从复制的核心是二进制日志也就是 binlog。binlog 记录 DDL 和 DML 语句但不记录普通查询语句。复制过程可以拆成三步主库事务提交时把数据变更写入 binlog。从库读取主库 binlog并写入自己的 relay log。从库重放 relay log 中的事件把变更应用到自己的数据中。流程图更直观主库提交事务写入 binlog从库 IO 线程拉取 binlog写入 relay log从库 SQL 线程重放事件从库数据追上主库这里有三个关键词组件作用Master主库负责写入并产生 binlogBinlog主库记录数据变更的日志Relay Log从库拉取 binlog 后保存的中继日志读写分离解决什么如果业务读多写少写操作可能影响查询效率。读写分离的思路是写请求走主库读请求走从库。典型路径是应用或数据库代理识别 SQL 类型。insert、update、delete发到主库。select发到从库。主库通过复制把变更同步给从库。写操作读操作应用发起 SQLSQL 类型路由到主库路由到从库主库写 binlog复制到从库返回查询结果读写分离能分担访问压力但也带来一个常见问题主从延迟。刚写入的数据立刻去从库查可能暂时查不到。解决方式包括强制读主库、延迟敏感业务不走从库、根据复制延迟动态路由等。什么时候考虑分库分表分库分表不是一开始就要做。它会显著增加系统复杂度应该在常规优化已经不足时再考虑。常见信号包括业务数据持续增长单表已经非常大。索引、SQL、缓存、读写分离等优化后仍无法满足性能。出现磁盘 IO、网络 IO、CPU 或连接数瓶颈。单表数据量达到千万级或者单表文件非常大。分库分表解决的是更底层的问题单库容量、单表性能、写入并发、IO 争抢。是否要走到分库分表可以先用这张决策图压一压复杂度否是是否是否是否是否数据库性能或容量出现瓶颈SQL 和索引是否已优化先优化 SQL、索引、表结构是否读多写少优先主从复制和读写分离是否单表数据量过大考虑水平分表是否单库连接数或 IO 成为瓶颈考虑水平分库或垂直分库继续观察业务增长和热点数据读写分离后是否仍有瓶颈暂不引入分库分表垂直拆分垂直拆分是按业务或字段拆。垂直分库垂直分库以表为依据根据业务边界把不同表拆到不同库。例如库表用户库用户、账号、权限订单库订单、支付、售后商品库商品、库存、类目它的好处是按业务独立管理、维护和扩展也能减少单库连接数和 IO 压力。垂直分表垂直分表以字段为依据把一个表中的字段拆到不同表。常见规则把不常用字段拆出去。把text、blob等大字段拆到附表。做冷热数据分离减少主表 IO。例如用户主表只保留高频字段用户详情表保存头像、简介、扩展配置等低频字段。水平拆分水平拆分是按数据行拆。表结构通常相同只是数据被分散到多个库或多张表。水平分库水平分库是把同一类数据拆到多个库中。例如按用户 ID 取模user_id % 3 0 - db_0 user_id % 3 1 - db_1 user_id % 3 2 - db_2它能解决单库数据量和高并发瓶颈提高系统稳定性和可用性。水平分表水平分表是把同一张表的数据拆到多张表中可以在同一个库内也可以跨库。例如order_0000 order_0001 order_0002 ...它主要解决单表过大导致的查询、写入、索引维护和锁竞争问题。分库分表带来的新问题拆分后性能瓶颈缓解了但复杂度会上来。问题说明分布式事务一次业务操作可能跨多个库跨节点关联查询join 不再像单库中那么自然跨节点分页排序需要汇总多节点结果再排序全局主键多节点生成 ID 需要避免冲突路由规则应用要知道数据在哪个库、哪张表常见中间件包括 ShardingSphere 和 MyCat。它们可以帮助处理路由、分片、读写分离等问题但不能消除架构复杂度。面试回答模板可以这样回答MySQL 主从复制依赖 binlog。主库提交事务时写 binlog从库读取 binlog 写入 relay log再重放 relay log 完成数据同步。读写分离是在主从复制基础上把写请求发到主库读请求发到从库用来缓解读压力但要注意主从延迟。当单库单表数据量或并发继续增长普通优化已经解决不了 IO、CPU、连接数和单表性能问题时可以考虑分库分表。分库分表分为垂直分库、垂直分表、水平分库、水平分表但会带来分布式事务、跨节点查询、分页排序和主键避重等新问题。小结主从复制、读写分离和分库分表是一条逐步升级的路线。主从复制解决数据同步和读扩展基础读写分离缓解读压力分库分表处理更大的容量和并发问题。越往后收益越大复杂度也越高设计时一定要先确认瓶颈是否真的到了这一步。

相关文章:

MySQL高可用与扩展-主从复制读写分离分库分表

当单库压力越来越大时,常见演进路线是先做主从复制,再做读写分离;如果数据量和写入压力继续增长,就需要考虑分库分表。 这三者解决的问题不同:方案主要解决什么主从复制数据冗余、读扩展、故障切换基础读写分离缓解读请…...

MySQL-MVCC核心原理-版本链ReadView与可见性判断

MVCC 全称是 Multi-Version Concurrency Control,也就是多版本并发控制。它的核心思想是:为同一行数据维护多个版本,让读写在很多情况下不用互相阻塞。 没有 MVCC 时,读写冲突通常要大量依赖锁。MVCC 让普通 select 可以读一个可见…...

如何永久保存微信聊天记录?三步实现完整备份与智能分析

如何永久保存微信聊天记录?三步实现完整备份与智能分析 【免费下载链接】WeChatMsg 提取微信聊天记录,将其导出成HTML、Word、CSV文档永久保存,对聊天记录进行分析生成年度聊天报告 项目地址: https://gitcode.com/GitHub_Trending/we/WeCh…...

DOM 浏览器

DOM 浏览器 引言 DOM(文档对象模型)是浏览器中处理HTML和XML文档的标准方式。它允许开发人员通过编程方式访问和操作网页内容。本文将详细介绍DOM的概念、其在浏览器中的运用以及相关的编程技巧。 DOM简介 什么是DOM? DOM(Document Object Model)是一种跨平台和语言独…...

OneQuery:统一异构数据源查询的抽象层设计与实战

1. 项目概述:一个查询,无限可能最近在折腾一个数据聚合项目,需要从多个异构数据源里捞数据,然后统一处理。这活儿听起来简单,但真干起来,每个数据源都有自己的查询语法、连接方式和返回格式,光是…...

【ElevenLabs匈牙利语音实战指南】:2024最新API调用、音色微调与本地化合规避坑全解析

更多请点击: https://intelliparadigm.com 第一章:ElevenLabs匈牙利语音支持概览与本地化价值定位 ElevenLabs 自 2024 年 3 月起正式引入匈牙利语(hu-HU)语音合成支持,成为其首批覆盖的中东欧语言之一。该能力依托于…...

韩国市场合规语音交付迫在眉睫!ElevenLabs韩文生成必须配置的4项GDPR+KCC隐私开关

更多请点击: https://intelliparadigm.com 第一章:韩国市场语音AI合规落地的紧迫性与战略意义 韩国《个人信息保护法》(PIPA)于2023年修订后,明确将语音生物特征数据列为“敏感信息”,要求语音AI系统在采集…...

桌面CNC木质游戏手柄外壳制作:从Fusion 360设计到实战加工全流程

1. 项目概述:从数字模型到木质手柄的旅程如果你和我一样,既痴迷于复古游戏的怀旧情怀,又享受亲手将数字设计变为实体物件的成就感,那么这个项目绝对能点燃你的热情。我们这次要做的,不是一个简单的3D打印外壳&#xff…...

MCP服务器部署模板:容器化与CI/CD自动化实践指南

1. 项目概述:一个为MCP服务器量身定制的部署蓝图如果你正在开发或维护一个基于模型上下文协议(Model Context Protocol, MCP)的服务器,并且对如何将其优雅、可靠地部署到生产环境感到头疼,那么你很可能已经…...

中鼎智能冲刺港股:年营收18.8亿 诺力股份是实控股东

雷递网 雷建平 5月16日中鼎智能(无锡)科技股份有限公司(简称:“中鼎智能”)日前更新招股书,准备在港交所上市。截至2026年3月31日止三个月,与上年同期相比,中鼎智能录得相对稳定的收…...

OpenClaw-Subcortex:轻量级自动化任务编排与执行框架详解

1. 项目概述与核心价值最近在折腾一些自动化工具,发现一个挺有意思的项目叫openclaw-subcortex。乍一看这个名字,可能有点摸不着头脑,又是“爪子”又是“皮层下”的,感觉像是什么生物或者神经科学的东西。但实际上,这是…...

本地可控 AI 助手搭建|Windows 一键安装 OpenClaw 操作指南

OpenClaw(小龙虾)Windows 一键部署保姆级教程|10 分钟搭建专属数字员工 前言 2026 年备受关注的开源 AI 智能体 OpenClaw(昵称小龙虾),在 GitHub 收获大量关注,凭借本地运行、零代码操作、自动…...

安得医疗冲刺港股:年营收9亿,利润1.5亿 上海亿瑞控制41%股权

雷递网 雷建平 5月16日山东安得医疗用品股份有限公司(简称:“安得医疗”)日前递交招股书,准备在港交所上市。截至2023年、2024年及2025年12月31日止年度,安得医疗分别宣派及派付股息6670万元、4670万元及4000万元。年营…...

MCP服务器生产级部署:从Docker到Kubernetes的完整工程化实践

1. 项目概述:一个为MCP服务器量身定制的部署蓝图如果你正在开发或使用一个基于模型上下文协议(Model Context Protocol, MCP)的服务器,并且为如何将其优雅、可靠地部署到生产环境而头疼,那么你很可能需要的…...

量子退火与经典优化结合的金融投资组合优化实践

1. 量子退火与经典优化结合的金融投资组合优化实践在金融投资领域,如何构建最优投资组合一直是核心挑战。传统方法如现代投资组合理论(MPT)和均值-方差优化(MVO)虽然奠定了理论基础,但在处理大规模资产配置时往往面临计算效率瓶颈。近年来,量…...

从肌电信号到Arduino控制:MyoWare传感器实战指南

1. 项目概述:当肌肉“说话”,我们如何“倾听”?如果你玩过一些体感游戏,或者看过科幻电影里用意念控制机械臂的场景,心里大概会闪过一个念头:这玩意儿到底是怎么做到的?其实,很多酷炫…...

DIY智能电机推子:从闭环控制到MIDI交互的硬件实战

1. 项目概述与核心价值如果你玩过专业的音频混音台,或者在一些高端的灯光控制台上见过那种会自己“嗖”一下滑到指定位置的推子,那你一定对电机推子(Motorized Fader)不陌生。这东西的魅力在于,它既是精准的模拟输入设…...

【c++面向对象编程】第24篇:类型转换运算符:自定义隐式转换与explicit

目录 一、一个自然的想法 二、类型转换运算符的基本语法 写法 使用 三、隐式转换的风险 问题1:意外的不希望发生的转换 问题2:多个转换路径的歧义 问题3:与构造函数隐式转换叠加导致混乱 四、explicit:禁止隐式转换 语法…...

TPU材料3D打印iPad Pro保护框:从设计到成品的完整实践指南

1. 项目概述:为什么选择TPU为iPad Pro打造专属保护框?作为一名折腾过几十公斤耗材的3D打印老玩家,我始终认为,这项技术最迷人的地方不在于复刻网上的模型,而在于为手头的心爱之物量身定制解决方案。就拿我手边的这台iP…...

Arm Neoverse-V2/V3缓存与内存参数优化指南

1. Arm Neoverse-V2/V3集群架构概述Arm Neoverse系列处理器作为数据中心和基础设施领域的重要计算引擎,其V2/V3代架构在缓存子系统和内存管理方面进行了显著优化。作为从业多年的系统架构师,我认为理解这些处理器的参数配置对性能调优至关重要。Neoverse…...

WELearn网课助手完整指南:5大核心功能彻底解放你的英语学习时间

WELearn网课助手完整指南:5大核心功能彻底解放你的英语学习时间 【免费下载链接】WELearnHelper 显示WE Learn随行课堂题目答案;支持班级测试;自动答题;刷时长;基于生成式AI(ChatGPT)的答案生成 项目地址: https://g…...

系统管理员AI编程实战:基于Claude的运维自动化脚本开发指南

1. 项目概述:一个面向系统管理员的Claude-Code学习与实践仓库最近在整理自己的技术栈时,发现很多系统管理员同行对如何将大型语言模型(LLM)高效地融入日常运维工作流感到困惑。大家普遍觉得这些AI工具很强大,但具体到写…...

Adafruit Feather RP2040 SCORPIO:专为大规模NeoPixel灯光控制而生的开发板

1. 项目概述:为什么你需要一块专为大规模灯光控制而生的开发板?如果你曾经尝试过用一块普通的微控制器驱动超过几百个NeoPixel(或WS2812)LED,你很可能已经撞上了性能的天花板。CPU被时序生成任务完全占用,动…...

GitHub自动化运维:构建模块化Operator集提升开发效率

1. 项目概述:一个为GitHub开发者量身定制的“操作集”如果你是一个重度GitHub用户,无论是维护个人项目、参与开源贡献,还是管理团队仓库,大概率都经历过这样的场景:每天要重复执行一堆琐碎但必要的操作。比如&#xff…...

5分钟学会创建专业交通网络可视化地图

5分钟学会创建专业交通网络可视化地图 【免费下载链接】transit-map The server and client used in transit map simulations like swisstrains.ch 项目地址: https://gitcode.com/gh_mirrors/tr/transit-map 你想在网页上展示动态的公共交通网络吗?Transit…...

RTX 5090功耗600W:高功耗显卡的系统级挑战与实战装机指南

1. 项目概述:从一则功耗新闻到显卡生态的深度解构最近,一则关于英伟达下一代旗舰显卡RTX 5090功耗可能高达600W的消息,在硬件圈和AI计算领域激起了不小的波澜。对于普通玩家而言,这或许只是一个“电老虎”又升级了的谈资&#xff…...

多数人支持!微软或把 Xbox 重新品牌化为 XBOX,回归最初形式

Xbox 品牌重塑:从民意调查到账号更名微软 Xbox 首席执行官阿莎夏尔马在 X(原推特)上发起民意调查,询问粉丝微软应使用 Xbox 还是 XBOX,结果多数人支持 XBOX,随后公司将其 X 账号更名。不过,Xbox…...

Chrome 扩展 uMatrix 被弃用,MV3 环境下 matrix³ 原型尝试实现其功能

Chrome 扩展 uMatrix 被弃用,MV3 环境下如何实现其功能?matrix 原型来尝试 曾经有一款很棒的 Chrome 扩展程序叫 uMatrix,它由 uBlock Origin 的开发者 Raymond Hill 编写,是一种直观控制网站权限和子资源请求的工具。 它看上去是…...

【仿真学习框架】MultiModalWBC 完全指南:从入门到精通的多模态全身控制框架

版本: v1.0 | 日期: 2026-05-15 目标读者: 具身智能研究者、机器人学习工程师、人形机器人开发者 前置知识: 基础强化学习(PPO)、PyTorch、刚体动力学概念 📑 目录 1. 初见 MultiModalWBC:我们到底在解决什么问题? 1.1 人形机器人控制的"碎片化"困境 1.2 多模态…...

安卓客户端架构解析:从MVVM到网络通信的完整实践

1. 项目概述:一个面向安卓设备的智能客户端最近在整理手头的开源项目时,发现了一个挺有意思的仓库,名字叫TOM88812/xiaozhi-android-client。光看这个标题,你可能会有点摸不着头脑,这“小智”到底是个啥?是…...