【MySQL】主从同步原理、分库分表
主从同步原理
1. 主从同步原理


MySQL 经常先把命令拷入硬盘的日志,再执行日志的命令,这样的好处:
- 日志的位置固定,拷入硬盘的开销不大;
- 将命令先准备好,而不是边读边执行,性能更好,不容易出错;
- 日志可以在合适的时机执行,还可以分发给其他的节点,这样同一份命令由一个节点读取即可;
- 宕机重启时,relay log 可以从 binlog 对应的位置开始读,从 relay log 对应的位置开始写入;
不是复用 redo log,职责和生命周期不同!
回答:
- MySQL 主从复制的核心就是主节点的二进制日志 binlog (DDL 和 DML 语句的记录);
- 主库在事务提交时,会把数据变更记录在二进制日志文件 binlog 中;
- 从库读取主库的二进制日志文件 binlog,写入到从库的中继日志 relay log;
- 从库重做中继日志中的事件,将改变反映它自己的数据。
分库分表
1. 你们项目用到过分库分表吗?



特点:
- 按照业务对数据进行分级管理、维护、监控、扩展;
- 在高并发下,提高磁盘 IO 和网络数据量的连接数;(不同业务可以连接不同的数据库,对应的数据库磁盘利用率提高,提高数据量的连接数,因为不会因为别的业务的繁忙而不能连接此数据库)

特点:
- 冷热数据分离;
- 减少 IO 过度争抢,两表互不影响(处理外键约束);

特点:
- 很直接的方式解决了单库大数量,高并发的性能瓶颈问题;
- 均匀的分库提高了系统的稳定性和可用性;
路由规则:
- 根据 id 节点取模;
- 根据 id 节点进行范围路由,节点1(1 - 100w),节点2(100w - 200w);
- …

特点:
- 优化单一表数据量过大而产生的性能问题;
- 避免 IO 争抢并减少锁数据行的几率;
新的问题和新的技术:
分库之后的问题:
- 分布式事务一致性问题;
- 跨节点关联查询;
- 跨节点分页、排序函数;
- 主键避重;
- …
分库分表中间件:
- mycat;
- sharding-sphere
- …
至于中间件怎么实现与解决的感兴趣再了解,知道这个技术可以处理即可,交给它吧~
回答:
- 业务介绍
- 根据自己的简历上的项目,像一个数据量大的较大业务场景(请求较多或者业务累计量大)
- 达到了什么样的量级(单表 1000w 或者超过 20G)
- 具体拆分策略
- 水平分库,将一个库的数据拆分到多个库中,解决海量数据存储和高并发的问题;
- 水平分库,解决单库存储和性能的问题;
- 垂直分库,根据业务进行拆分,高并发下提高磁盘 IO 和网络连接数;
- 垂直分表,冷热数据分离,多表基本互不影响;
- 基本上是以垂直分库和垂直分表为主;如果业务需要,再在垂直拆分的基础上做水平拆分;
发下提高磁盘 IO 和网络连接数;**
4. 垂直分表,冷热数据分离,多表基本互不影响; - 基本上是以垂直分库和垂直分表为主;如果业务需要,再在垂直拆分的基础上做水平拆分;
- 而我觉得还是以垂直分库、垂直分表根据适合此业务场景;
相关文章:
【MySQL】主从同步原理、分库分表
主从同步原理 1. 主从同步原理 MySQL 经常先把命令拷入硬盘的日志,再执行日志的命令,这样的好处: 日志的位置固定,拷入硬盘的开销不大;将命令先准备好,而不是边读边执行,性能更好,…...
uniapp如何实现关闭前面指定数目页面
需求 : 路由从 页面A -> 页面B-> 页面C-> 页面D 我希望在 页面C跳到页面CD 后 在页面D 中 点击返回(物理键或是代码返回),直接返回到A,而不是页面C 所以我需要把BC页面给销毁掉 以下是我的实现思路,在h…...
使用 Helm 安装 极狐GitLab
本篇作者 徐晓伟 使用 Helm 简便快捷的部署与管理 极狐GitLab 前提条件 k8s 完成 helm 的配置 k8s 完成 ingress 的配置 内存至少 10G 演示环境是 龙蜥 Anolis 8.4(即:CentOS 8.4)最小化安装k8s 版本 1.28.2calico 版本 3.26.1nginx ingre…...
K8S部署postgresql
(作者:陈玓玏) 一、前置条件 已部署k8s,服务端版本为1.21.14 二、部署postgresql 拉取镜像,docker pull postgres,不指定版本,自动从docker hub拉取最新版本;配置configmap&…...
Go 如何控制并发的goroutine数量?
为什么要控制goroutine并发的数量? 在开发过程中,如果不对goroutine加以控制而进行滥用的话,可能会导致服务整体崩溃。比如耗尽系统资源导致程序崩溃,或者CPU使用率过高导致系统忙不过来。 用什么方法控制goroutine并发的数量&a…...
【黑马程序员】1、TypeScript介绍_黑马程序员前端TypeScript教程,TypeScript零基础入门到实战全套教程
课程地址:【黑马程序员前端TypeScript教程,TypeScript零基础入门到实战全套教程】 https://www.bilibili.com/video/BV14Z4y1u7pi/?share_sourcecopy_web&vd_sourceb1cb921b73fe3808550eaf2224d1c155 目录 1、TypeScript介绍 1.1 TypeScript是什…...
JS进阶——深入对象
构造函数 封装是面向对象思想中比较重要的一部分,js面向对象可以通过构造函数实现的封装。 前面我们学过的构造函数方法很好用,但是 存在浪费内存的问题 原型 目标:能够利用原型对象实现方法共享 构造函数通过原型分配的函数是所有对象所…...
Gitlab部署管理
一、安装 1.docker安装gitlab sudo docker run -d \-p 6080:80 -p 6022:22 \--name gitlab \--restart always \-v /srv/gitlab/config:/etc/gitlab \-v /srv/gitlab/logs:/var/log/gitlab \-v /srv/gitlab/data:/var/opt/gitlab \gitlab/gitlab-ce:latest2.存储说明 存储应…...
MyBatis 学习(二)之 第一个 MyBatis 案例
目录 1 配置 MyBatis 方式 1.1 XML 配置文件 1.2 Java 注解配置 1.3. Java API 配置 2 在 MySQL 中创建一张表 3 创建一个基于 Maven 的 JavaWeb 工程 4 编写 User 实体类 5 创建 Mybatis 全局配置文件 6 编写一个 DAO 或 Mapper 接口 7 编写 SQL 映射配置文件&#…...
30天自制操作系统(第21天)
21.1 攻克难题——字符串显示API 显示单个字符时,用 [CS:ECX] 的方式特意指定了 CS(代码段寄存器),因此可以成功读取 msg的内容。但在显示字符串时,由于无法指定段地址,程序误以为是 DS而从完全错误的内存地…...
linux系统Jenkins的安装
Jenkins安装 安装上传安装包解压包首次登录要去服务器查看密码,更改密码选择需要安装的插件设置Admin用户和密码安装完成 安装 上传安装包 上传 jdk17 tomcat jenkins.war的安装包 . 上传 tomcat安装包解压包 解压jdk tar xf jdk-11.0.18_linux-x64_bin.tar.gz解…...
【GStreamer】basic-tutorial-1:GstBus、GstMessage详解
【目录】郭老二博文之:图像视频汇总 1、先看示例 #include <gst/gst.h>int main (int argc, char *argv[]) {GstElement *pipeline;GstBus...
Python中的可变变量与不可变变量
python中的可变与不可变变量 一、变量的三个参数 就像区分一个人一样,同样都是张三,可能这个张三就不是那个张三。同一个变量是指的什么相同呢? Python中的对象包含三个要素,id(内存地址),typ…...
OpenGL调用窗口,方向键和鼠标
9.2 OpenGL调用窗口,方向键和鼠标 9.2.1 opengl调用窗口 OpenGL调用窗口步骤: 第一步:初始化 GLFW,初始化OpenGL,初始化窗口,初始化上下文 第二步:设置窗口大小和位置,设置输入输出 第三步…...
fastAdmin表格列表的功能
更多文章,请关注:fastAdmin后台功能详解 | 夜空中最亮的星 FastAdmin是一款基于ThinkPHP5Bootstrap的极速后台开发框架。优点见开发文档 介绍 - FastAdmin框架文档 - FastAdmin开发文档 在这里上传几张优秀的快速入门图: 一张图解析FastAdmin中的表格列…...
用来检查 CUDA、Conda 和 PyTorch 的版本的python文件
提供的 Python 代码片段包括几个语句,用来检查 CUDA、Conda 和 PyTorch 的版本,以及一些与 CUDA 相关的系统配置。让我们分解一下:PyTorch 版本和配置:torch.__config__.show():显示 PyTorch 的构建配置。 torch.__ver…...
基于Redisson,实现分布式锁注解
1.原始写法 我们平常使用redisson的分布式锁是不是基本都用下面的这个模板,既然是模板,那为何不把他抽出来呢? // 尝试加锁,最多等待100秒,上锁以后10秒自动解锁 boolean res lock.tryLock(100, 10, TimeUnit.SECON…...
【机器学习】机器学习是什么?
你知道机器学习是什么吗?它就像是一个超级聪明的孩子,可以通过观察和经验不断学习和成长。而我们要做的就是培养和教育这个孩子,让他能够从数据中学习并做出决策和预测。 那么,我们该如何培养和教育这个聪明的孩子呢?首…...
一文速览深度伪造检测(Detection of Deepfakes):未来技术的守门人
一文速览深度伪造检测(Detection of Deepfakes):未来技术的守门人 前言一、Deepfakes技术原理卷积神经网络(CNN):细致的艺术学徒生成对抗网络(GAN):画家与评审的双重角色…...
C# 中的执行表达式树(Expression Tree)
引言: 在C#编程中,表达式树(Expression Tree)是一种强大的工具,用于表示和执行计算表达式。表达式树将计算表达式抽象为树状结构,每个节点代表表达式中的一个元素,如常量、变量、方法调用等。本…...
3步解锁网易云音乐NCM文件:小白也能懂的完整解密教程
3步解锁网易云音乐NCM文件:小白也能懂的完整解密教程 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾经在网易云音乐下载了心爱的歌曲,却发现在其他设备上无法播放?那些看似属于你的音乐文…...
保姆级教程:用GMT6.1绘制专业地形起伏图(从数据下载到出图避坑)
零基础实战:用GMT6.1绘制科研级地形图的完整指南 第一次打开GMT时,面对满屏的命令行参数,我盯着屏幕发呆了半小时——这像极了刚学编程时面对"Hello World"的茫然。但当我终于生成第一张带有自定义光照效果的地形图时,…...
重构设计工作流:HTML到Figma的智能转换技术解析
重构设计工作流:HTML到Figma的智能转换技术解析 【免费下载链接】figma-html Convert any website to editable Figma designs 项目地址: https://gitcode.com/gh_mirrors/fi/figma-html 在数字产品开发的现代工作流中,设计与代码之间的鸿沟一直是…...
【时序预测】“剥洋葱”式深度集成:基于 SARIMA + XGBoost + LSTM 的出租车客运量预测
1. 核心痛点:为什么单一模型会失效? 出租车乘客量的波动并非简单的随机过程,而是三种力量交织的产物: 线性骨架:周而复始的日/周季节性规律(如早晚高峰)。 非线性扰动:外部环境&am…...
SAP硬件选择详解:服务器、存储与网络的全面解析
硬件作为SAP系统的基石,涵盖了服务器、磁盘存储系统以及网络设备等多个组件。硬件包括服务器、存储、网络设备,共同构建SAP架构。这些硬件组件必须协同工作,才能构建出高效稳定的SAP基础架构。选择硬件提供商的重要性不容忽视。选择提供商要考…...
Phi-4-mini-reasoning 3.8B 智能文档处理:Typora风格Markdown内容自动生成
Phi-4-mini-reasoning 3.8B 智能文档处理:Typora风格Markdown内容自动生成 1. 场景痛点:Markdown写作的效率瓶颈 对于技术写作者、博客作者和文档工程师来说,Markdown已经成为事实上的标准写作格式。而Typora以其简洁优雅的所见即所得体验&…...
单片机实战解析:从时序到代码,手把手实现DS18B20温度采集
1. DS18B20温度传感器基础认知 第一次接触DS18B20时,我对着这个三根引脚的金属探头愣了半天——这么简单的结构真能实现高精度测温?后来在项目里实测发现,这款数字温度传感器不仅测量范围广(-55C到125C),精…...
WinUtil:告别Windows系统臃肿烦恼,一键打造流畅高效的操作体验
WinUtil:告别Windows系统臃肿烦恼,一键打造流畅高效的操作体验 【免费下载链接】winutil Chris Titus Techs Windows Utility - Install Programs, Tweaks, Fixes, and Updates 项目地址: https://gitcode.com/GitHub_Trending/wi/winutil 你是否…...
从元器件到高速PCB:我的硬件工程师书单升级之路(附避坑指南)
从元器件到高速PCB:我的硬件工程师书单升级之路(附避坑指南) 记得刚入行时,面对琳琅满目的技术书籍和软件工具,我常陷入选择困难——是该先啃透《电路原理》这样的经典教材,还是直接上手《Cadence高速电路设…...
终极指南:Gamescope三大后端架构解析 - DRM、SDL与Wayland实现原理深度剖析
终极指南:Gamescope三大后端架构解析 - DRM、SDL与Wayland实现原理深度剖析 【免费下载链接】gamescope SteamOS session compositing window manager 项目地址: https://gitcode.com/gh_mirrors/ga/gamescope Gamescope作为SteamOS的核心窗口管理器…...

