分库分表

分库,分表,分库分表

只分库“,“只分表“,“既分库又分表"

何时分库

在面对高并发的情况下,数据库连接成为性能瓶颈。当数据QPS过高导致数据库连接数不足时,考虑分库。在读多写少的场景下,增加多个从库或使用分库方法,实现数据库的高可用。

避免大量数据集中访问在单台机器上,对磁盘IO、CPU负载造成过大压力,影响性能。

分库与添加Slave机器的关系

  1. 添加Slave机器:

    • 读写分离:通过添加Slave机器实现主从复制,将读操作分散到多个机器上,减轻主库的读压力。
    • 提高查询性能:Slave机器可处理大量只读查询。
    • 异步复制:主库执行后,数据会异步复制到Slave机器上,可能导致一定延迟。
  2. 分库:

    • 水平扩展:分库可将数据划分到不同数据库实例中,每个实例负责一部分数据,可通过在同一服务器实例中运行不同数据库实例或在不同服务器上运行不同db实例实现。

如进行微服务拆分,把单一数据库拆到不同的数据库当中
在这里插入图片描述

什么时候分表

分表解决数据量大的情况。当单表数据量非常大、并发量不高、数据连接足够但存储查询遇到瓶颈时,需减少单表数据量,提高速度。通常在单表行数超过500万行或单表容量超过2GB后,考虑分库分表。

在这里插入图片描述

何时既分库又分表

解决并发量和数据量都很大的情况。通常,高并发大数据量同时发生,因此经常遇到分库分表的情况。当数据库连接不足、同时单表数据量很大、查询速度很慢时,需要进行分库分表。

水平拆分和垂直拆分

  • 垂直拆分: 将表中某记录的多个字段拆分到多个表中。
  • 水平拆分: 将一张表中不同记录分别放到不同表中,减少单表数据。

水平拆分。把不同的用户的订单分表拆分到不同的表中,每个表中维护一些记录
在这里插入图片描述

垂直拆分减少字段数,使每个单表数据存储减少;水平拆分将不同用户的订单分表,每表维护一些记录。
在这里插入图片描述

分表的字段选择

分表的字段决定了数据如何在不同的分表中的划分和存储,比如按用户分表,按时间分表,按地区分表,这里面的用户,时间,地区就是分表的字段
需要注意的是(按照买家进行分表是把所有相同的买家信息放在同一张表中,而不是一个买家一个表)

  1. 用户ID:按照用户ID分表,将同一个用户的数据分到同一个分表,便于按用户进行查询,这样方便避免热点数据的数据倾斜,同时方便进行水品扩张,将新的买家的数据分布到新的分表中,不影响已有的分表
  2. 时间:按照时间进行分表,按照年,月,日等,使用在按时间范围查询场景,方便后期的数据清理
  3. 地区:按照地区分表,适用于有地域数据的数据

卖家查询怎么办

我们一般都是使用买家ID来实现分表,避免某些大卖家的大量数据导致数据倾斜的问题
但是买家查询很方便,那么卖家如何查询呢

由于卖家可能会涉及到多个买家的表,如果直接在分表中查询就会涉及到跨表查询,影响性能,为了解决这个问题,就提出了同步一张卖家维度的表,这张表只用来查询,而不涉及写操作,卖家ID同样可以可以定位到这个卖家维度的表

我们可以使用binlog 或者Flink等同步方案,将写入买家的数据同步到卖家维度的表中,直接在这个卖家维度的表中查询,而不需要进行跨表查询

由于卖家表只用来查询,所以可以使用一些高性能db,如HBasePolarDB满足大查询量的需求

全局ID的生成

涉及到分库分表,就会引申出分布式系统的唯一主键ID的生成问题,因为在单表中我们可以使用数据库主键来做唯一的ID,但是做了分库分表,多张单表中的自增主键就一定会冲突,就不具有唯一性了

雪花算法

雪花算法具有全局唯一递增高可用的特点:

  • 1位符号位: 表示正负,通常这个位没有特殊用途。

  • 41位时间戳位: 精确到毫秒,可以容纳约69年的时间。表示当前时间戳,通常为当前值减去一个固定的起始时间戳。

  • 10位机器ID: 高5位是数据中心ID,低5位是工作节点ID,最多可以容纳1024个节点,确保在同一个时间戳内,不同的机器生成不同的ID。

  • 12位序列号位: 表示在同一时间戳和机器ID下的序列号,每个节点每毫秒从0开始不断累加,递增到4095。因此,雪花算法在同一毫秒内最多生成1024 * 4096个唯一的ID。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c++ list容器使用详解

list容器概念 list是一个双向链表容器,可高效地进行插入删除元素。 List 特点: list不可以随机存取元素,所以不支持at.(position)函数与[]操作符。可以对其迭代器执行,但是不能这样操作迭代器:it3使用时包含 #includ…

信安.网络安全.UDP协议拥塞

第一部分 如何解决UDP丢包问题 一、UDP 报文格式 每个 UDP 报文分为 UDP 报头和 UDP 数据区两部分。报头由 4 个 16 位长(2 字节)字段组成,分别说明该报文的源端口、目的端口、报文长度和校验值。UDP 报文格式如图所示。 UDP 报文中每个…

开源简历生成器OpenResume

什么是 OpenResume ? OpenResume 是一个功能强大的开源简历生成器和简历解析器。OpenResume 的目标是为每个人提供免费的现代专业简历设计,让任何人都能充满信心地申请工作。 OpenResume 有 5 个核心特点: 特征描述1. 实时UI更新当您输入简历…

技术实践|高斯集群服务器双缺省网关故障分析

导语:当前国产化数据库使用范围越来越广泛,在GaussDB数据库的使用过程中难免会遇到一些问题,有的问题是由于在安装过程中没有注意细节而产生的,多数隐患问题都是在特定场景下才会暴露出来,且暴露的时间未知&#xff0c…

2023年电子工程师大会暨第三届社区年度颁奖活动--【其利天下技术】

华秋电子发烧友将于2023年11月23日在深圳举办一场盛大的技术交流活动,即“2023年电子工程师大会暨第三届社区年度颁奖活动”。本次活动邀请了各大高校教授、企业高管、行业专家和电子工程师们齐聚一堂,围绕“开源硬件”、“OpenHarmony RISC-V”、“工程…

vue-pdf在vue框架中的使用

在components目录下新建PdfViewer/index.vue vue-pdf版本为4.3.0 <template><div :id"containerId" v-if"hasProps" class"container"><div class"right-btn"><div class"pageNum"><input v-m…

GPT-4充当“规划师、审计师”,颠覆性双层文生图表模型

DALL-E 3、Midjourney、Stable Diffusion等模型展现出了强大的创造能力&#xff0c;通过文本便能生成素描、朋克、3D、二次元等多种类型的高质量图片&#xff0c;但在生成科学图表&#xff08;柱状、直方、箱线、树状等&#xff09;方面却略显不足。 这是因为模型在生成图表时…

解锁安全与信任的双重礼遇!JoySSL证书买二送一,买三送二

JoySSL是业内领先的SSL证书提供商&#xff0c;致力于为网站提供最高水平的安全性。通过使用JoySSL证书&#xff0c;您的网站将获得强大的加密保护&#xff0c;确保用户的敏感信息在传输过程中得到安全加密&#xff0c;有效地抵御各种网络威胁。 为何选择JoySSL证书&#xff1f…

简单好用的轻量级思维导图:ClickCharts 激活for mac

ClickCharts是一款流程图和流程图绘制软件&#xff0c;它提供了直观的界面和丰富的工具&#xff0c;帮助用户轻松创建和编辑各种类型的图表和流程图。 以下是ClickCharts软件的一些主要功能和特点&#xff1a; 流程图绘制&#xff1a;ClickCharts允许用户创建各种类型的流程图…

ROS Turtlebot3多机器人编队导航仿真

文章目录 前言一、Gzazebo中加载多台Turtlebot3机器人二、RVIZ中加载多个Turtlebot3机器人三.多机器人编队导航总结 前言 前面已经实现了在gazebo仿真环境中机器人一字型编队、三角形编队、N字型编队等仿真&#xff0c;接下来考虑多机器人编队在编队行进过程中的避障问题&…

如何看待阿里云发布的全球首个容器计算服务 ACS?

如何看待阿里云发布的全球首个容器计算服务 ACS&#xff1f; 本文目录&#xff1a; 前言 一、什么是ACS 二、ACS 的核心特性 三、ACS 的关键技术 四、本期话题讨论 4.1、你如何看待容器计算服务 ACS 的发布&#xff1f; 4.2、你认为 ACS 的产品设计能降低企业使用 K8s的…

Uniapp矩阵评分组件

uniapp矩阵评分组件支持自定义图标、选择颜色、评分等级。 <template><view style"width: 100%;overflow: hidden;"><view class"flex-sub flex-table flex flex-direction-column":style"{ --table-border-color: tableBorderColor…

数据结构-插入排序+希尔排序+选择排序

目录 1.插入排序 插入排序的时间复杂度&#xff1a; 2.希尔排序 希尔排序的时间复杂度&#xff1a; 3.选择排序 选择排序的时间复杂度&#xff1a; 所谓排序&#xff0c;就是使一串记录&#xff0c;按照其中的某个或某些关键字的大小&#xff0c;递增或递减的排列起来的…

PHP排序sort()、asort() 和 ksort() 的区别及用法

&#x1f3c6;作者简介&#xff0c;黑夜开发者&#xff0c;CSDN领军人物&#xff0c;全栈领域优质创作者✌&#xff0c;CSDN博客专家&#xff0c;阿里云社区专家博主&#xff0c;2023年6月CSDN上海赛道top4。 &#x1f3c6;数年电商行业从业经验&#xff0c;历任核心研发工程师…

Amazon EC2的出现,是时代的选择了它,还是它选择了时代

目录 Amazon EC2简介 友商云服务器对比&#xff08;Amazon VS Tencent&#xff09; 友商云服务器对比&#xff08;Amazon VS Alibaba&#xff09; Amazon 云服务器的绝对优势 Amazon EC2功能 Amazon EC2 Linux 实例入门 启动实例 连接到的实例 清除的实例 终止的实例…

【Linux】一

本文使用的是云服务器来获取Linux环境 (使用虚拟机同样可以学习使用命令), 并且介绍了常用的Linux 命令. 获取Linux环境 使用xshell连接到云服务器 1.新建会话 输入主机号(云服务器的外网ip) 2.输入用户名/密码 centos的用户名:root 密码就是在后台设置的 3.成功进入 ~描…

盛元广通开放实训室管理系统2.0

开放实训室管理系统是一种基于网络和数据库的实训室信息管理系统&#xff0c;旨在提高实训室的管理水平&#xff0c;实现实训资源的优化配置和高效利用。该系统通常包括用户管理、设备管理、课程管理、考核管理等功能模块&#xff0c;能够实现实训室的预约、设备借用、课程安排…

PDF/X、PDF/A、PDF/E:有什么区别,为什么有这么多格式?

PDF 是一种通用文件格式&#xff0c;允许用户演示和共享文档&#xff0c;无论软件、硬件或操作系统如何。多年来&#xff0c;已经创建了多种 PDF 子类型来满足各个行业的不同需求。让我们看看一些最流行的格式&#xff1a;PDF/X、PDF/A 和 PDF/E。 FastReport .net下载 PDF/X …

如何远程控制别人电脑进行技术支持?

怎么提供远程技术支持&#xff1f; “我朋友的电脑出了一些问题&#xff0c;问我是否可以远程控制他的电脑帮他解决。请问有什么办法能快速的远程控制别人的电脑进行故障排除呢&#xff1f;” 当电脑出问题时&#xff0c;多数情况下会采用电话沟通进行解决&#…

Nuxt3框架全局引用外部JS/CSS文件的相关配置方法

全局引入外部文件方法&#xff1a; 找到根目录下的nuxt.config.ts配置文件&#xff1b;然后如上图所示&#xff0c;在defineNuxtConfig配置对象下app选项节点下&#xff0c;head对象中即可配置全局需要的JS或CSS文件&#xff1b; // https://nuxt.com/docs/api/configuration/…