【分库分表篇】分区和分表的区别

在这里插入图片描述

分区和分表的区别

  • ✔️ 解析
  • ✔️拓展知识仓
    • ✔️分区的方式
    • ✔️MySQL 数据库支持的分区类型为水平分区


✔️ 解析


数据库中数据量过多,表太大的时候,不仅可以做分库分表,还可以做表分区,分区和分表类似,都是按照一定的规则将一张大表进行分解。


听上去好像也差不多,不就是将表拆分吗? 那具体有什么差别呢?


主要是分区和分表后数据的数据存储方式有变化。


在Innodb中 (8.0之前),表存储主要依赖两个文件,分别是.frm文件和ibd文件。.frm文件用于存储表结构定义信息,而.ibd文件则用于存储表数据。


假如我们有一张users表,想要对他进行分区和分表,区别如下:


MySQL InnoDB存储引擎在分区表时,会将每一个分区分别存放在一个单独的 .ibd 文件中,所有的 .ibd 文件组合构成表的物理结构,即 Table Space。


对于上面分区的 users表,存储时会在 MySQL的 data 目录下创建一个用户名+表名+分区名.ibd 的文件(如: users_p1.ibd) ,用来存储 users 表中第一个分区的数据,同样会有 users_p2.ibd 和users_p3.ibd 来存储第二和第二个分区的数据:


users_p1.ibd
users_p2.ibd
users_p3.ibd
users p4.ibd
users .frm

MySQL InnoDB存储引擎在分表时,会将每一个分表分别存放在一个单独的 .frm 文件中,所有的 .frm 文件组合构成表的逻辑结构,即 Table Definition。


对于上面分表的users表,存储时会在 MySQL的data目录下创建后缀名为“users_1.frm”的表格文件,存储users 表中第一个分表的数据,同样会有 users_2.frm 和 users_3.frm 来存储第二和第=分表的数据:


users_1.ibd
users_1.frm
users_2.ibd
users_2.frm
users_3.ibd
users_3.frm
users_4.ibd
users_4.frm

在做了分区后,表面是还是只有一张表,只不过数据保存在不同的位置上了 (同一个.frm文件),在做数据读取的时候操作的表名还是users表,数据库会自己去组织各个分区的数据。


而在做了分表之后,不管是表面上,还是实际上,都已经是不同的表了 (多个.frm文件),数据库操作的时候,需要去指定具体的表名。


一般来说,数据量变大时,我们应该先考虑分区,分区搞不定再考虑分表。


因为分表可以在分区的基础上,进一步减少查询时的系统开销。因为分表后,单表数据量小,页缓存率更高,I/O读写性能更优,另外分表也能降低了锁带来的阻塞,也可以提高事务处理效率。还有就是小的表可以提升备份和恢复的速度,并且是有更好的横向扩展件。


✔️拓展知识仓


✔️分区的方式


表分区的方式有水平分区、垂直分区:


1 . 水平分区 : 将表根据行进行划分,即把一个表的数据划分成多个表的数据,每个表形成一个分区,这些细分出来的部分存放在多个不同的分区表中(比如按年份等)。每块数据都存放在不同的表中,可以显著提高操作的效率。


2 . 垂直分区 : 将表根据表字段进行划分,将表中的列(或字段)分割成多个数据表,用于存储不同的业务场景内的数据。使分区后的数据表垂直分离,可以有效减少数据库查询中非必要的访问。


✔️MySQL 数据库支持的分区类型为水平分区


常见的表分区实践中,可以按照以下一些原则进行分区:

1 . 按照系统负载,将数据分到不同的区域中
2 . 按照应用程序查询模式,将数据库分为不同的分区
3 . 按照月份或者年份分区
4 . 通过实践哈希法可以将记录放置到不同的分区中
5 . 基于范围查询,使用分段来将记录放置到不同的分区中,以便提高查询效率


MySQL水平分区的创建方法


CREATE TABLE orders (order_id INT PRIMARY KEY,order_date DATE,customer_id INT,total_amount DECIMAL(102)
) PARTITION BY RANGE (YEAR(order_date)) (PARTITION P0 VALUES LESS THAN (2020),PARTITION P1 VALUES LESS THAN (2021),PARTITION P2 VALUES LESS THAN (2022),PARTITION P3 VALUES LESS THAN MAXVALUE
);

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

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

相关文章

Vue-Setup

一、setup概述 小小提示&#xff1a;vue3中可以写多个根标签。 Person.vue中内容 <template><div class"person"><h2>姓名&#xff1a;{{name}}</h2><h2>年龄&#xff1a;{{age}}</h2><!--定义了一个事件&#xff0c;点击这…

数据特征工程 | PSO粒子群算法的特征选择原理及python代码实现

粒子群优化(Particle Swarm Optimization,PSO)是一种基于群体智能的优化算法,常用于解决搜索和优化问题。在特征选择问题中,PSO可以用于选择最佳的特征子集,从而提高模型的性能和效果。 PSO的特征选择原理如下: 表示特征子集:PSO中的每个粒子表示一个特征子集,其中每…

PyTorch常用工具(2)预训练模型

文章目录 前言2 预训练模型 前言 在训练神经网络的过程中需要用到很多的工具&#xff0c;最重要的是数据处理、可视化和GPU加速。本章主要介绍PyTorch在这些方面常用的工具模块&#xff0c;合理使用这些工具可以极大地提高编程效率。 由于内容较多&#xff0c;本文分成了五篇…

一起学量化之KDJ指标

KDJ指标,也称为随机指数,是一个常用的技术分析工具。它由三条线组成:K线、D线和J线,分别代表不同的市场动态。KDJ指标通过分析最高价、最低价和收盘价计算得出。 1. KDJ指标理解 J线是移动速度最快的线,可以提供更加敏锐的市场信号。K线是指标的核心,显示市场的即时动态。…

【linux 多线程并发】线程属性设置与查看,绑定CPU,线程分离与可连接,避够多线程下的内存泄漏

线程属性设置 ​专栏内容&#xff1a; 参天引擎内核架构 本专栏一起来聊聊参天引擎内核架构&#xff0c;以及如何实现多机的数据库节点的多读多写&#xff0c;与传统主备&#xff0c;MPP的区别&#xff0c;技术难点的分析&#xff0c;数据元数据同步&#xff0c;多主节点的情况…

LeetCode1275. Find Winner on a Tic Tac Toe Game

文章目录 一、题目二、题解 一、题目 Tic-tac-toe is played by two players A and B on a 3 x 3 grid. The rules of Tic-Tac-Toe are: Players take turns placing characters into empty squares ’ . The first player A always places ‘X’ characters, while the seco…

Keras实现Transformer

# 导入所需的库 import numpy as np from keras.models import Model from keras.layers import Input, Dense, Embedding, MultiHeadAttention from keras.optimizers import Adam# 定义模型参数 vocab_size 10000 # 词汇表大小 embedding_dim 256 # 嵌入维度 num_heads …

营销系统升级:运荔枝无代码集成电商API功能

无代码开发&#xff1a;运荔枝连接电商与CRM 随着电子商务的持续扩张&#xff0c;企业亟需无缝集成电商平台与客户关系管理&#xff08;CRM&#xff09;系统&#xff0c;以提高运营效率。运荔枝通过其无代码开发平台&#xff0c;为企业提供了简化的API连接服务。商家可以在不具…

Prometheus 监控进程

prometheus 进程的监控 1. process exporter功能 2. 监控目标对主机进程的监控&#xff0c;chronyd sshd 等服务进程已经已定义脚本运行程序的运行状态监控。 process-compose的安装 监控所有进程 mkdir /data/process_exporter -p cd /data/process_exporter创建配置文件 …

Linux期末复习笔记

期末复习笔记 引言目录操作用户和组用户组 文件及文件权限文件文件目录及分类Linux文件目录文件类型文件权限 磁盘管理磁盘命名规则使用命令行工具管理磁盘分区和文件系统linux中的数据备份策略软件包安装检查维护文件系统 进程管理进程分类ps查看与top查看的区别&#xff1a; …

为什么ChatGPT选择了SSE,而不是WebSocket?

我在探索ChatGPT的使用过程中&#xff0c;发现了一个有趣的现象&#xff1a;ChatGPT在实现流式返回的时候&#xff0c;选择了SSE&#xff08;Server-Sent Events&#xff09;&#xff0c;而非WebSocket。 那么问题来了&#xff1a;为什么ChatGPT选择了SSE&#xff0c;而不是We…

力扣25题: K 个一组翻转链表

【题目链接】力扣&#xff08;LeetCode&#xff09;官网 - 全球极客挚爱的技术成长平台&#xff0c;解题代码如下&#xff1a; class Solution {public ListNode reverseKGroup(ListNode head, int k) {ListNode curNode head;ListNode groupHead, groupTail head, lastGrou…

UART通信协议:串行通信的精华

UART通信协议&#xff1a;串行通信的精华 UART&#xff08;Universal Asynchronous Receiver/Transmitter&#xff09;通信协议是一种广泛应用于串行通信的标准&#xff0c;它在电子设备和嵌入式系统中扮演着至关重要的角色。本文将深入介绍UART通信协议的基本原理、工作方式、…

一个可以用于生产环境得PHP上传函数

上传表单 <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><title>文件上传</title> </head> <body><h1>选择要上传的文件</h1><!-- 定义一个包含文件输入字段的表单 --…

[每周一更]-(第46期):Linux下配置Java所需环境及Java架构选型

Linux下配置Java所需环境及Java架构选型 一、配置基础环境 1.配置tomcat 环境变量 wget https://dlcdn.apache.org/tomcat/tomcat-10/v10.1.8/src/apache-tomcat-10.1.8-src.tar.gz tar -zxvf apache-tomcat-10.1.8-src.tar.gz 在/etc/profile 末尾追加export CATALINA_HOME…

异常控制流ECF

大家好&#xff0c;我叫徐锦桐&#xff0c;个人博客地址为www.xujintong.com&#xff0c;github地址为https://github.com/xjintong。平时记录一下学习计算机过程中获取的知识&#xff0c;还有日常折腾的经验&#xff0c;欢迎大家访问。 一、异常控制流&#xff08;ECF) 现代系…

[BUG]Datax写入数据到psql报不能序列化特殊字符

1.问题描述 Datax从mongodb写入数据到psql报错如下 org.postgresql.util.PSQLException: ERROR: invalid bytesequence for encoding "UTF8": 0x002.原因分析 此为psql独有的错误&#xff0c;不能对特殊字符’/u0000’,进行序列化&#xff0c;需要将此特殊字符替…

webrtc中的接口代理框架

文章目录 接口代理框架Proxy体系类结构导出接口 webrtc的实际运用PeerConnectionFactoyPeerConnection使用 接口代理框架 webrtc体系庞大&#xff0c;模块化极好&#xff0c;大多数模块都可以独立使用。模块提供接口&#xff0c;外部代码通过接口来使用模块功能。 在webrtc中通…

uni-app 前后端调用实例 基于Springboot

锋哥原创的uni-app视频教程&#xff1a; 2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中..._哔哩哔哩_bilibili2023版uniapp从入门到上天视频教程(Java后端无废话版)&#xff0c;火爆更新中...共计23条视频&#xff0c;包括&#xff1a;第1讲 uni…

《PCI Express体系结构导读》随记 —— 第I篇 第2章 PCI总线的桥与配置(1)

前言中曾提到&#xff1a;本章重点介绍PCI桥。 在PCI体系结构中含有两类桥&#xff1a;一类是HOST主桥&#xff1b;另一类是PCI桥。在每一个PCI设备中&#xff08;包括PCI桥&#xff09;&#xff0c;都含有一个配置空间。这个配置空间由HOST主桥管理&#xff0c;而PCI桥可以转…