为什么要分库分表

news2024/11/18 9:28:50

目录

  • 为什么分库分表
    • 业务驱动
    • 分库分表优缺点
      • 优点
      • 缺点
    • 如何分库分表
      • 分库分表原则
      • 分库多少合适
      • 分表多少合适
      • 分库分表字段选择逻辑
  • 库或表不够怎么办
    • 数据归档

在这里插入图片描述

为什么分库分表

业务驱动

  • 业务:增长快,业务复杂度高。系统流量疯狂增长,部分大表数据每天百万或千万级别增长
  • 系统体验:系统访问越来越慢,数据库频繁告警,各种慢SQL

分库分表优缺点

优点

分库收益: 解决高并发场景下的数据库连接不足

分表收益: 解决单表数据量过大(千万以上,未来增长快),读写性能有瓶颈

缺点

程序设计复杂: 引入中间件,如:MyCat、ShardingSphere。还有跨库查询,跨库分页等问题

成本增加: 现在多个库,会增加成本。

如何分库分表

分库分表原则

垂直分:

  • 垂直分库:比如不同的业务,对应不同的数据库
  • 垂直分表:比如由一个大宽表,如果有一部分字段是经常要查询的,有一部分是不经常使用的,可以将不经常使用的字段放到另一张表中,然后使用外键关联。

水平分: 就是数据量的拆分

  • 水平分库:原先一个库的数据,现在多个库来承担
  • 水平分表:原先一个表的数据,现在多个表来承担

库表的个数一般是2的倍数:16、32、64、128

分库多少合适

先压测下,测出单库能承受的QPS大概是多少

可以预估未来3年业务QPS峰值,然后除以单库的QPS,得到需要分几个库。

比如:未家3年业务QPS峰值:2WQPS,单库:2000QPS

计算分库数量:2w/2000=10个库,一般是2的幕次方,可以分16个库

分表多少合适

可以预估未来总数据量,然后除以当前表中的数据量,确定分几个表。

分库分表字段选择逻辑

如何选择分库分表字段:比较通用的常见字段选择:用户Id、订单号、运单号、买家ld、卖家ld、交易时间、地区

分库分表算法:1. 哈希取模 2. 一致性哈希算法

分库分表落地:1. ShardingSphere中间件(首选)2. mycat中间件(不建议)

库或表不够怎么办

数据归档

将不常用的旧数据进行归档,比如:主表保留3个月数据,之前的数据删除,同步全量一份到大数据

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

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

相关文章

[linux 驱动]i2c总线设备驱动详解与实战

目录 1 描述 2 结构体 2.1 bus_type 2.2 i2c_bus_type 2.2.1 i2c_device_match 2.2.2 i2c_device_probe 2.2.3 i2c_device_remove 2.2.4 i2c_device_shutdown 2.2 i2c_adapter 2.3 i2c_algorithm 2.4 i2c_driver 2.5 i2c_client 3 i2c核心 3.1 注册i2c适配器 3.2…

windows电脑怎么录屏?电脑录屏全攻略,轻松捕捉精彩瞬间

在数字化时代,屏幕录制已成为我们日常生活和工作中不可或缺的一部分。无论是记录游戏的高光时刻、制作教学视频,还是保存重要的在线会议内容,Windows电脑都为我们提供了多种高效便捷的录屏方式,如果你还不知道怎么录屏&#xff0c…

什么是领域驱动设计?

什么是领域驱动设计? 领域驱动设计(Domain-Driven Design,简称DDD)是一种面向对象的软件开发方法,它强调将软件系统的设计和实现过程与业务领域紧密结合,通过深入理解和建模业务领域,从而实现高…

抓包工具检测手把手教学 - 某招聘网站

大家好,我是南枫~~~ 先问大家一个问题,你们有没有遇到过想爬一个网站,想用老方法,直接右键打开抓包工具,此时,突然!整个页面都变得空白,什么数据都没有了的情况…… 如果你没遇到过…

探索MySQL视图的无限可能:优化查询、增强数据安全与简化数据访问

作者简介:我是团团儿,是一名专注于云计算领域的专业创作者,感谢大家的关注 座右铭: 云端筑梦,数据为翼,探索无限可能,引领云计算新纪元 个人主页:团儿.-CSDN博客 目录 前言&#…

OpenAI发布o1预览模型:推理能力更强可达理科博士生水准

近日OpenAI宣布推出了新一代 AI 模型系列 OpenAI o1,按照官方技术博客说法,o1 在推理能力上代表了人工智能最强的水平。 那究竟是怎么一回事呢? OpenAI CEO Sam Altman 表示:o1 系列的推出代表了 AI 能力的新起点,能…

用Python设置PDF中图片的透明度

在PDF文档的设计与内容创作过程中,图像的透明度设置是一个重要的操作。尤其是在处理图文密集型PDF文档时,设置适当的图片透明度能够极大地提升视觉表达的层次感与专业性。设置PDF图像的透明度能够让图像更好地融入背景,实现平滑过渡的效果&am…

PAT甲级-1028 List Sorting

题目 题目大意 输入给出学生数目和C值,以及每个学生的信息。要求按照C值对学生信息作出不同的排序,如果C为1,就将学号升序排列;如果C为2,将学生姓名非递减排序;如果C为3,将学生分数非递减排序。…

SldWorks问题1: 在装配体中获取零件的面

问题 我为零件的某个面进行了命名,以此查找,进行配合。 在使用先前写好的查找方法时,有时会出现找不到的情况。 然后捣鼓了半天,发现: 只有当“零件文档显示的配置,和已放置的零件配置一致”时&#xff…

《C++PrimerPlus》第10章:类和对象

文章目录 文章介绍目录重点知识10.2 抽象和类10.3 类的构造函数和析构函数10.4 this指针10.5 对象数组10.6 类作用域 文章介绍 目录 重点知识 10.2 抽象和类 类开发人员:设计类 类调用人员:使用类 10.3 类的构造函数和析构函数 10.4 this指针 10.5 对…

微服务杂谈

几个概念 还是第一次听说Spring Cloud Alibaba ,真是孤陋寡闻了,以前只知道 SpringCloud 是为了搭建微服务的,spring boot 则是快速创建一个项目,也可以是一个微服务 。那么SpringCloud 和 Spring boot 有什么区别呢?S…

dirty pages , swapiness 查看SWAP占用进程

文章说了这么多的意思 就是不要过度分配不用的内存。虽然脏块不会写入swap,但是占了物理内存,浪费空间,可能导致进行了很多不必要的交换(虽然判断很少要进swap,判断要不要也要时间。。。)。 To verify whic…

(机器学习必看视频)机器学习-吴恩达笔记汇总

最近将吴恩达老师在网易课程上的机器学习视频看了第二遍,同时整理了一下笔记,仅供学习实用,也放到了Github。主要是参考了下面几位大佬的书籍和作品,表示感谢! 李航《统计学习方法》周志华 《机器学习》黄海广博士 ima…

NAS黑群晖7.21折腾笔记

黑群晖引导制作 https://post.smzdm.com/p/a96d62xe/ 黑群晖基本使用教程 https://www.bilibili.com/video/BV1A3411f7WK/?spm_id_from333.337.search-card.all.click 重点: 1,存储管理器 --创建存储池 RAID类型选择: 2&#xff0c…

【2024.08】图模互补:知识图谱与大模型融合综述-笔记

阅读目的:假设已有一个知识图谱,如何利用图谱增强模型的问答,如何检索知识图谱、知识图谱与模型的文本如何相互交互、如何利用知识图谱增强模型回答的可解释性。 从综述中抽取感兴趣的论文进一步阅读。 来源:图模互补&#xff1…

天下苦英伟达久矣!PyTorch官方免CUDA加速推理,Triton时代要来?

在做大语言模型(LLM)的训练、微调和推理时,使用英伟达的 GPU 和 CUDA 是常见的做法。在更大的机器学习编程与计算范畴,同样严重依赖 CUDA,使用它加速的机器学习模型可以实现更大的性能提升。 虽然 CUDA 在加速计算领域占据主导地位,并成为英伟达重要的护城河之一。但其他…

AV1 Bitstream Decoding Process Specification--[4]:语法结构

原文地址:https://aomediacodec.github.io/av1-spec/av1-spec.pdf没有梯子的下载地址:AV1 Bitstream & Decoding Process Specification摘要:这份文档定义了开放媒体联盟(Alliance for Open Media)AV1视频编解码器…

动态规划:汉诺塔问题|循环汉诺塔

目录 1. 汉诺塔游戏简介 2.算法原理 3.循环汉诺塔 1. 汉诺塔游戏简介 汉诺塔游戏是一个经典的数学智力游戏,其目标是将塔上不同大小的圆盘全部移动到另一个塔上,且在移动过程中必须遵守以下规则: 每次只能移动一个圆盘较大的圆盘不能放在…

linux cmake版本升级教程(Centos7)

有时候,当前系统的cmake版本,并一定能满足编译要求,所以需要进行升级到高于某个版本才能正常编译。本章教程,主要在centos7上进行升级cmake版本。 一、查看当前的cmake版本 cmake --version二、下载指定版本的cmake wget https://github.com/Kitware/CMake/releases/down…

2.2 vc-align源码分析 -- ant-design-vue系列

vc-align源码分析 源码地址:https://github.com/vueComponent/ant-design-vue/tree/main/components/vc-align 1 基础代码 1.1 名词约定 需要对齐的节点叫source,对齐的目标叫target。 1.2 props 提供了两个参数: align:对…