MySQL 分库分表

分表

分表

将表按照某种规则拆分成多个表。

分表的使用原因

当数据量超大的时候,B-Tree索引效果很变差。

垂直分区

切分原则:把不常用或存储内容比较多的字段分到新的表中可使表存储更多数据。

原因,Innodb主索引叶子节点存储着当前行的所有信息,所以减少字段可使内存加载更多行数据。

水平分区

切分原则: 增量区间或散列或其他业务逻辑。

使用哪种切分方法要根据实际业务逻辑判断。

范围分区:

比如对表的访问多是近期产生的新数据,历史数据访问较少,可以考虑根据时间增量把数据按照一定时间段(比如每年)切分。

Hash分区:

如果对表的访问较均匀,没有明显的热点区域,则可以考虑用范围(比如每500w一个表)或普通Hash或一致性Hash来切分。

分区表

是什么

分区表是一个独立的逻辑表,但是底层由多个物理子表实现。

为什么

当数据量超大的时候,B-Tree索引就无法起作用了。

MySQL帮我们实现了传统分表后的SQL中间件。

对于原表分区后,对于应用层来说可以不做变化。

分区方式

哈希分区:使用哈希函数将数据均匀分布到不同的分区。

按范围分区:按照时间,地点分区等。

分区的使用场景

对数据的操作只涉及一部分数据,而不是所有数据 

为什么使用了分表

当数据量超大的时候,B-Tree索引就无法有效作用时候。

垂直分表切分原则

把不经常用的字段或者内容多个字段储存到另外一个表,因为InnoDB储存引擎的机制可以储存更多的数据。

水平分表切分原则

表访问的很均匀的话可以使用hash分区,行均匀的分到多表中。

表访问不均匀的话比如查看近期的数据多的话,可以使用按照范围分区。

分库

分库

将数据库的表分到多个数据库中。

分库使用原因

当单台数据库性能不满足需求时,数据库磁盘IO瓶颈和网络IO瓶颈。

分库的原则 

根据业务紧密程度拆分,因为跨数据库无法联表查询。

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

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

相关文章

Linux抽象套接字

在UNIX和类UNIX系统中,socket编程提供了一种机制,允许进程之间进行通信。其中,UNIX域套接字(UNIX domain socket)是一种特殊的套接字,用于同一台机器上的进程间通信(IPC)。UNIX域套接字可以使用两种类型的地址:路径名套接字(pathname socket)和抽象套接字(abstract…

笔记 2 : 课本第 3 章开始,记录 arm 的汇编指令的格式

(13) 介绍 arm 中的第一个汇编指令的用法 mov : (14)立即数的概念: (15) 汇编中的移位写法: 举例 : (16) 学习一个新的指令 cmp &a…

网络监控工具推荐与对比

网络监控工具在确保网络安全、性能和可用性方面发挥着关键作用。以下是几款流行的网络监控工具的推荐与对比: 1. Nagios 特点: 开放源代码:提供免费的社区版本和付费的企业版本。可扩展性:拥有大量插件,可以监控各种…

芯课堂 | Synwit_UI_Creator(ugui)平台之PC端界面设计篇

​今天小编给大家介绍的是华芯微特面向小尺寸TFT-LCD屏驱市场量身打造的Synwit_UI_Creator(ugui)自研开发套件。 UI_Creator(ugui)开发套件分为上位机和下位机,以下如无特指,上位机即为PC端设计器/仿真器&…

虚拟机及其Debian(kali)安装

本机电脑为Windows10系统专业版,在此基础上安装VMware和系统(Kali) 步骤如下 一、安装 VMware Workstation Pro v16.2.4 安装步骤可参照网上博客,该步骤较简单,此处不做讲解。文件中共计两个,其中一个是激活…

【闲聊】-Perl的基础语法

Perl语言详细介绍 概述 Perl,全称“Practical Extraction and Report Language”,是一种功能强大的编程语言,特别擅长文本处理和系统自动化任务。它最初由Larry Wall于1987年设计,旨在解决UNIX系统管理中的常见问题,…

拆分整数 java

拆分整数 给定一个正整数 n ,将其拆分为 k 个 正整数 的和( k > 2 ),并使这些整数的乘积最大化。 返回 你可以获得的最大乘积 。 示例 1: 输入: n 2输出: 1解释: 2 1 1, 1 1 1。 示例 2: 输入: n 10输出: 36解释: 10 3 …

关于不同集合类型是否重写equals和hashCode的问题

不同集合类型在没有重写 equals 和 hashCode 时的行为: HashSet 和 HashMap: 这些集合依赖于对象的 hashCode 方法来定位元素,然后使用 equals 方法来确认元素是否真的相等。 如果你没有重写 equals 和 hashCode,那么默认的 equals 方法将基…

【ProtoBuf】在 Windows / Linux 安装 ProtoBuf(超详细教程)

一、ProtoBuf 在 Window 下的安装 1、下载 ProtoBuf 编译器 下载地址:github.com 可以不用下载最新版本,具体的下载根据自己电脑情况选择。 下载之后将压缩包解压到本地目录下。解压后的文件内包含 bin、include 文件,以及一个 readme.txt…

基于SSM框架的宠物领养系统【附源码和运行步骤】

基于SSM框架的宠物领养系统 一、项目介绍用户模块宠物模块领养模块管理员模块 二、项目技术栈三、项目运行四、项目演示用户领养界面管理员界面 总结 大家好,这里是程序猿代码之路!在当今社会,宠物已经成为许多家庭的重要成员,带给…

如何解决手机游戏因IP代理被封禁无法正常游戏的问题?

在当前的网络环境下,许多手机游戏为了维护游戏的公平性和安全性,会采取措施对使用IP代理的玩家进行封禁,导致他们无法正常访问游戏。这种情况对于一些需要使用IP代理的用户来说可能显得很棘手,但实际上有几种技术性的解决方案可以…

4个免费自动生成文章的软件,轻松创作高质量文章

对于创作都而言,能够轻松创作出高质量的文章是每个创作者都想实现的想法,但如何依靠创作者自己去人工手动完成写作,那么将会需要付出很多时间与精力,并且还要有好的创作灵感,因此,通过人工手动创作高质量的…

记录些MySQL题集(1)

Innodb 是如何实现事务的? InnoDB是MySQL数据库的一个存储引擎,它支持事务处理。事务处理是数据库管理系统执行过程中的一个逻辑单位,由一个或多个SQL语句组成,这些语句要么全部执行,要么全部不执行,是一个…

PyTorch复现PointNet++——模型训练+模型测试

本博文主要实现对PointNet源码进行调试,模型训练模型测试。 一、下载源码和数据集 论文:PointNet: Deep Hierarchical Feature Learning on Point Sets in a Metric Space GitHub源码:Pointnet2_pytorch 数据集包括三种:分类、零…

SpringBoot @Value注解优化

前言&背景 SpringBoot的Value功能之一可以从配置文件读取并赋值到对象的属性。 需求方要求原来从配置文件中修改的配置参数需要提供界面修改,但是接受配置完后重启服务。 分析&方案 我们主要使用了Value注解,所以在做的时候需要从Value注解下…

django报错(三):No crontab program或got an unexpected keyword argument ‘user’

Crontab是linux系统上的定时管理模块,简单配置,灵活使用。但是要在windows使用必须借助Cygwin等虚拟工具,否则会报错“No crontab program”。如下图: python-crontab是其提供了python模块对crontab的访问,即可以通过p…

写材料word和PPT

一、WORD 1、写内容 2、参考GPT改:内容、逻辑结构、语句 3、查标题及其标号 4、修改格式:仿宋 、正文统一为小三,标题三号,1.5倍行距,加页码。 采用VBA代码自动修改,不知为何标题无法修改字体 Sub 插入页…

EasyAnimate-v3版本支持I2V及超长视频生成

阿里云人工智能平台(PAI)自研开源的视频生成项目EasyAnimate正式发布v3版本: 支持 图片(可配合文字) 生成视频 支持 上传两张图片作为起止画面 生成视频 最大支持720p(960*960分辨率) 144帧视…

【Git分支管理】分支策略 | Bug分支

目录 1.分支策略 2.特殊场景-Bug分支 2.1 master出现bug ​2.2 dev2正在开发☞stash区域 2.3 dev2正在开发master出现bug 2.3.1 fix_bug修复bug和master合并 2.3.2 dev2分支开发完和master合并 合并冲突:merge☞手动解决☞提交没有合并冲突:mer…

ns3-gym入门(三):在opengym基础上实现一个小小的demo

因为官方给的"opengym""opengym-2"这两个例子都很简单,所以自己改了一个demo,把reward-action-state相互影响的关系表现出来 一、准备工作 在ns3.35/scratch目录下创建一个文件夹: (后续的运行指令后面都需要…