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

主从同步原理

1. 主从同步原理

在这里插入图片描述

在这里插入图片描述

MySQL 经常先把命令拷入硬盘的日志,再执行日志的命令,这样的好处:

  1. 日志的位置固定,拷入硬盘的开销不大;
  2. 将命令先准备好,而不是边读边执行,性能更好,不容易出错;
  3. 日志可以在合适的时机执行,还可以分发给其他的节点,这样同一份命令由一个节点读取即可;
  4. 宕机重启时,relay log 可以从 binlog 对应的位置开始读,从 relay log 对应的位置开始写入;

不是复用 redo log,职责和生命周期不同!

回答:

  • MySQL 主从复制的核心就是主节点的二进制日志 binlog (DDL 和 DML 语句的记录);
  • 主库在事务提交时,会把数据变更记录在二进制日志文件 binlog 中;
  • 从库读取主库的二进制日志文件 binlog,写入到从库的中继日志 relay log;
  • 从库重做中继日志中的事件,将改变反映它自己的数据。

分库分表

1. 你们项目用到过分库分表吗?

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

特点:

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

在这里插入图片描述

特点:

  1. 冷热数据分离;
  2. 减少 IO 过度争抢,两表互不影响(处理外键约束);
    在这里插入图片描述

特点:

  1. 很直接的方式解决了单库大数量,高并发的性能瓶颈问题;
  2. 均匀的分库提高了系统的稳定性和可用性;

路由规则:

  • 根据 id 节点取模;
  • 根据 id 节点进行范围路由,节点1(1 - 100w),节点2(100w - 200w);

在这里插入图片描述

特点:

  1. 优化单一表数据量过大而产生的性能问题;
  2. 避免 IO 争抢并减少锁数据行的几率;

新的问题和新的技术:

在这里插入图片描述

分库之后的问题:

  • 分布式事务一致性问题;
  • 跨节点关联查询;
  • 跨节点分页、排序函数;
  • 主键避重;

在这里插入图片描述

分库分表中间件:

  • mycat;
  • sharding-sphere

至于中间件怎么实现与解决的感兴趣再了解,知道这个技术可以处理即可,交给它吧~

回答:

  • 业务介绍
    1. 根据自己的简历上的项目,像一个数据量大的较大业务场景(请求较多或者业务累计量大)
    2. 达到了什么样的量级(单表 1000w 或者超过 20G)
  • 具体拆分策略
    1. 水平分库,将一个库的数据拆分到多个库中,解决海量数据存储和高并发的问题;
    2. 水平分库,解决单库存储和性能的问题;
    3. 垂直分库,根据业务进行拆分,高并发下提高磁盘 IO 和网络连接数;
    4. 垂直分表,冷热数据分离,多表基本互不影响;
  • 基本上是以垂直分库和垂直分表为主;如果业务需要,再在垂直拆分的基础上做水平拆分;
    发下提高磁盘 IO 和网络连接数;**
    4. 垂直分表,冷热数据分离,多表基本互不影响;
  • 基本上是以垂直分库和垂直分表为主;如果业务需要,再在垂直拆分的基础上做水平拆分;
  • 而我觉得还是以垂直分库、垂直分表根据适合此业务场景;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2815621.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

GIS之深度学习01:检测电脑是否包含英伟达GPU

GPU(Graphics processing unit),中文全称图形处理器,我们听说的更多的CPU全称是central processing unit,中央处理器。研究深度学习和神经网络大都离不开GPU,在GPU的加持下,我们可以更快的获得模…

Golang使用Swag搭建api文档

1. 简介 Gin是Golang目前最为常用的Web框架之一。 公司项目验收需要API接口设计说明书(Golang后端服务基于Gin框架编写),编写任务自然就落到了我们研发人员身上。 项目经理提供了文档模板,让我们参考模板来手动编写,要…

幻兽帕鲁(1.5.0)可视化管理工具(0.5.7 docker版)安装教程

文章目录 局域网帕鲁服务器部署教程帕鲁服务可视化工具安装配置服务器地址(可跳过)使用工具管理面板 1.5.0服务端RCON错误1.5.0服务端无法启动RCON端口 解决方法第一步:PalWorldSettings.ini配置第二步:修改PalServer.sh配置 局域…

如何一步一步地优化LVGL的丝滑度

经过一番周折将LVGL移植到了STM32F407单片机上,底层驱动的LCD是st7789,移植时的条件和环境如下: ●LVGL用的是单缓冲,一次刷新10行; ●刷新函数用的是最原始的一个一个打点的方式; ●ST7789底层发送数据用的…

抖音橱窗怎么关闭?

路径:【抖音APP-我-电商带货-全部工具-账号管理-权限与账户-关闭电商权限】关闭橱窗带货权限。 0保、原0粉达人关闭电商权限后,后续均需要满足页面提示要求才可以进行电商权限的开通,建议慎重操作。

2024年阿里云优惠券领取及使用教程_无门槛优惠券

阿里云优惠代金券领取入口,阿里云服务器优惠代金券、域名代金券,在领券中心可以领取当前最新可用的满减代金券,阿里云百科aliyunbaike.com分享阿里云服务器代金券、领券中心、域名代金券领取、代金券查询及使用方法: 阿里云优惠券…

Xinstall助力社交产品,轻松实现用户关系链归因

在如今的社交网络时代,人与人之间的联系变得越来越紧密。社交产品作为连接人与人之间的桥梁,其重要性不言而喻。然而,如何让用户在使用社交产品时更快速地建立起社交联系,一直是社交产品开发者们关注的焦点。 Xinstall作为一款专…

智能销售数据大屏:决胜市场的数字利器

在数字化浪潮席卷全球的今天,数据已经成为企业决策的核心要素。尤其对于销售团队来说,如何快速、准确地把握市场动态,分析客户行为,成为决定胜负的关键。而智能销售数据大屏,正是这样一款能够帮助企业洞察市场脉络、决…

如何用GPT高效地处理文本、文献查阅、PPT编辑、编程、绘图和论文写作?

原文链接:如何用GPT高效地处理文本、文献查阅、PPT编辑、编程、绘图和论文写作?https://mp.weixin.qq.com/s?__bizMzUzNTczMDMxMg&mid2247594986&idx4&sn970f9ba75998f2dd9fa5707d1611a6cc&chksmfa82320dcdf5bb1bdf58c20686d4eb209770e68253ed90d…

StarRocks实战——滴滴OLAP的技术实践与发展方向

原文大佬的这篇StarRocks实践文章整体写的很深入,介绍了StarRocks数仓架构设计、物化视图加速实时看板、全局字典精确去重等内容,这里直接摘抄下来用作学习和知识沉淀。 目录 一、背景介绍 1.1 滴滴OLAP的发展历程 1.2 OLAP引擎存在的痛点 1.2.1 运维…

高通 AI Hub 上手指南

文章介绍 2月26日,高通在2024年世界移动通信大会(MWC2024)上发布高通AI Hub, AI Hub 简化了AI 模型部署到边缘设备的过程。可以利用AI-hub云端托管 Qualcomm 设备上,在几分钟内完成模型的优化、验证和部署。本文以Pyto…

老卫带你学---leetcode刷题(103. 二叉树的锯齿形层序遍历)

103. 二叉树的锯齿形层序遍历 问题 给你二叉树的根节点 root ,返回其节点值的 锯齿形层序遍历 。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。 示例 1: 输入&a…

优先级队列介绍和模拟实现

个人主页:Lei宝啊 愿所有美好如期而遇 Container就是适配器,也就是说这个优先级队列的底层就使用vector,当然,我们也可以使用deque来适配,但是对于优先级队列来说,效率是低于vector的,因为优先…

【前端素材】推荐优质在线家具电商Bazu平台模板(附源码)

一、需求分析 1、系统定义 家具电商平台是指专门销售家具产品的在线电子商务平台。这些平台专注于家具类商品的销售和服务,为消费者提供方便快捷的购买体验。 2、功能需求 家具电商平台是指专门销售家具产品的在线电子商务平台。这些平台专注于家具类商品的销售…

从此告别手忙脚乱!职场高手管理多微信的技巧

在现在职场,微信已经成为了必不可少的沟通工具之一。然而,随着工作联系人的增多,管理多个微信账号可能会变得一团糟。今天,我们就来分享一些职场高手们管理多个微信账号的技巧,让你从此告别手忙脚乱的状态!…

搜维尔科技:OptiTrack 提供了性能最佳的动作捕捉平台

OptiTrack 动画 我们的 Prime 系列相机和 Motive 软件相结合,产生了世界上最大的捕获量、最精确的 3D 数据和有史以来最高的相机数量。OptiTrack 提供了性能最佳的动作捕捉平台,具有易于使用的制作工作流程以及运行世界上最大舞台所需的深度。 无与伦比…

Python 画 箱线图

Python 画 箱线图 flyfish 箱线图 其他名字 盒须图 / 箱形图 横向用正态分布看 垂直看 pandas画 import pandas as pdimport seaborn as sns import matplotlib.pyplot as plt import pandas as pddf pd.read_csv(sh300.csv) print("原始数据") print(df.he…

ARTS Week 17

Algorithm 本周的算法题为 989. 数组形式的整数加法 整数的 数组形式 num 是按照从左到右的顺序表示其数字的数组。 例如,对于 num 1321 ,数组形式是 [1,3,2,1] 。 给定 num ,整数的 数组形式 ,和整数 k ,返回 整数 n…

【算法历练】动态规划副本—路径问题

🎬慕斯主页:修仙—别有洞天 ♈️今日夜电波:宙でおやすみ 1:02━━━━━━️💟──────── 2:45 🔄 ◀️ ⏸ ▶️ ☰ &#…

在Node.js中如何实现用户身份验证和授权

当涉及到构建安全的应用程序时,用户身份验证和授权是至关重要的一环。在Node.js中,我们可以利用一些流行的库和技术来实现这些功能,确保我们的应用程序具有所需的安全性。本篇博客将介绍如何在Node.js中实现用户身份验证和授权。 用户身份验…