mysql表分区

MySQL表分区技术介绍 分区功能并不是在存储引擎层完成的,因此不是只有 InnoDB 存储引擎支持分区,常见的存储引擎 MyISAM、NDB 等都支持。但也并不是所有的存储引擎都支持,如CSV, FEDORATED, MERGE等就不支持。在使用分区功能前,应该对选择的存储引擎对分区的支持有所了解。MySQL数据库在5.1版本时添加了对分区的支持。分区的过程是将一个表或索引分解为多个更小、更可管理的部分。就访问数据库的应用而言,从逻辑上讲,只有一个表或一个索引,但是在物理上这个表或索引可能由数十个物理分区组成。 阅读详情

本文简述了mysql表分区的作用和特点,又演示了mysql表分区的创建过程,详细演示了指定不同分区目录时的处理办法。由于表分区对crud操作是透明的,对于普通开发同学其实不用过多关注,但是本着学习的态度,在分库分表等高大上的技术面前,mysql分区技术依然是一个不可或缺的提升数据库读写能力的关键技术。

1、mysql分区的简单介绍

mysql分区就是将表的数据按照特定规则存放在不同的区域,也就是将表的数据文件分割成多个小块,在查询数据的时候,只要知道数据数据存储在哪些区域,然后直接在对应的区域进行查询,不需要对表数据进行全部的查询,提高查询的性能。同时,如果表数据特别大,一个磁盘磁盘放不下时,我们也可以将数据分配到不同的磁盘去,解决存储瓶颈的问题,利用多个磁盘,也能够提高磁盘的IO效率,提高数据库的性能。

1.1、mysql表分区的特点

  • 物理存储与逻辑分割:逻辑上数据的crud用户感觉不出表分区的存在,物理上数据按照分区键被分配到不同的分区里。
  • 查询性能提升:查询时,mysql能够确定读取那些分区的数据,不用全表扫描。
  • 数据管理与维护:分区可以独立备份、恢复,无需对整表操作。
  • 扩展性与并行处理:当表的大小超过单个存储设备的容量时,很容易扩展到多个存储设备。

1.2、分区的类型

  • RANGE:基于列的值范围将数据分配到不同的分区。比如可以根据日期范围将数据分配到不同的月份、年份的分区中。
  • LIST:基于列的离散值集合来分配数据的。对应的列的数据是一个类似枚举型的数据。
  • HASH:根据用户指定的列的hash值分配数据。
  • KEY:类似于HASH,但支持多列。

大家对先表分区有个认识后,下面咱们就开始实操一下。

2、操练

2.1、创建表分区

create table t_member(
	member_id int not null,
	member_name varchar(60),
	member_phone varchar(20),
	create_time datetime,
	update_time datetime
) PARTITION BY RANGE (YEAR(create_time)) (
	PARTITION P1 VALUES LESS THAN (2024),
	PARTITION P2 VALUES LESS THAN (2025),
	PARTITION P3 VALUES LESS THAN MAXVALUE 

);

不多解释了,sql语句还是比较容易理解。上面我创建了3个分区,咱们到服务器上看看数据文件,如下图:

在这里插入图片描述
目前是在一个目录中,如果你的系统有多个硬盘,把数据文件分别放在不同的硬盘上,那肯定会提高读写性能。下面咱们模拟一下过程。因为有些坑大家要避免。

2.2、创建表分区,使用不同的数据目录

我们从一个简单的创建sql开始。

create table t_member32(
	member_id int not null,
	member_name varchar(60),
	member_phone varchar(20),
	create_time datetime,
	update_time datetime
) PARTITION BY RANGE (YEAR(create_time)) (
	PARTITION P1 VALUES LESS THAN (2024) DATA DIRECTORY = '/home/jackie',
	PARTITION P2 VALUES LESS THAN (2025) DATA DIRECTORY = '/mydata',
	PARTITION P3 VALUES LESS THAN MAXVALUE 

);

其实就是在刚才的sql的基础上(表名改了),为三个分区分配了三个不同的目录。p1、p2指定,p3明确指定存放目录,那就是保存在默认的目录里。

直接执行肯定会报错,因为p1、p2目录mysql不知道,要先让mysql知道这两个目录,也就是说不能随便指定一个操作系统的目录。下来咱们处理这个问题。

2.2.1 配置my.cnf

在my.cnf,找到“mysqld”段,加入下面配置(我就按上面sql写了):
在这里插入图片描述
注意:多个目录“;”号分割。保存后重启mysql,依然报错。还没完,咱们继续。

2.2.2 将目录的owner设置成mysql

管理员登录,设置/home/jackie和/mydata的owner。你的机器上要是还没有这两个目录就先新建一下。

chown mysql:mysql /home/jackie
chown mysql:mysql /mydata

此时还不行,执行刚才的sql语句时,会报存储引擎错误。

2.2.3、配置apparmor

apparmor是linux的一个安全组件,有兴趣大家去查查。咱们修改apparmor的配置:

sudo vim /etc/apparmor.d/usr.bin.mysqld

添加如下配置:

在这里插入图片描述
保存退出后,重新加载apparmor配置并重启,命令如下:

sudo systemctl reload apparmor.service 
sudo systemctl restart apparmor.service 

再次执行上面的创建语句,就能执行成功了。数据文件也按我们的规划放到了指定的区域。

在这里插入图片描述
这是/home/jackie目录的数据文件。其他的普通sql操作就不演示了,和普通表的操作一模一样。如果要在分区后继续新增分区、删除分区、合并分区大家可以看看mysql的文档,这里就不啰嗦了。

好了,大家试试,希望能在工作中对你有帮助。
//~~

MySql创建分区 Python微信订餐小程序课程视频 https://blog.youkuaiyun.com/m0_56069948/article/details/122285951 Python实战量化交易理财系统 https://blog.youkuaiyun.com/m0_56069948/article/details/122285941 一、Mysql分区类型 1、RANGE 分区:基于属于一个给定连续区间的列值,把多行分配给分区。 2、HASH分区:基于用户定义的表达式的返回值来进行选择的分区,该表达式使用将要插入到表中的这些行的列值 阅读详情

相关推荐

头歌MySQL数据库实训答案 有目录

头歌java实训答案集数据库部分一条一条的写,可鼠标手动粘贴,除特定命令外未分大小写。 第1关:创建数据库 第2关创建表 第3关:使用主键约束 第4关:外键约束 第5关:添加常用约束 MySQL数据库 - 数据库和表的基本操作(一) 第1关:查看表结构与修改表名 第2关:修改字段名与字段数据类型 第3关:添加与删除字段 第4关:修改字段的排列位置 第5关:删除表的外键约束 MySQL数据库 - 数据库和表的基本操作(二) 第1关:插入数据 第2关:更新数据 第3关:删除数据 MySQL数据库 - 单表查询(

m0_67401761的博客 4万+

mysql创建表分区详细介绍及示例

mysql创建表分区的概念描述,及4种分区类型的详细介绍和示例,以及分区表的优化增删改查介绍及实例

weixin_44462773的博客 1万+

即插即用!5分钟为你的SNN模型添加频谱注意力(DCT-SA模块实战)

本文介绍了如何为脉冲神经网络(SNN)快速集成即插即用的DCT-SA频谱注意力模块。该模块利用离散余弦变换(DCT)在频率域自适应加权特征,能有效提升模型对纹理、边缘的感知能力,并在CIFAR10-DVS等数据集上实现分类精度提升与脉冲发放率下降。文章以SpikingJelly框架和ResNet19为例,提供了详细的代码实现、集成步骤及参数调优实战指南。

kotlin6android的博客 608

MySQL分区表详解

通常情况下,同一张表的数据在物理层面都是存放在一起的。随着业务增长,当同一张表的数据量过大时,会带来管理上的不便。而分区特性可以将一张表从物理层面根据一定的规则将数据划分为多个分区,多个分区可以单独管理,甚至存放在不同的磁盘/文件系统上,提升效率。对于应用来说,表依然是一个逻辑整体,但数据库可以针对不同的数据分区独立执行管理操作,不影响其他分区的运行。而数据划分的规则即称为分区函数,数据写入表时,会根据运算结果决定写入哪个分区。...

egegerhn的博客 3656

SAP接口错误查询日志

随着数字经济的迅速发展,企业数字化转型不在只追求“业财一体化”,而是在业务端也想要进行更为精细化的管理,所以很多企业在SAP ERP的基础上,集成更多垂直领域更精细的外围系统,比如销售CRM系统,采购SRM系统,生产MES系统等等,琳琅满目的产品,那对SAP实施来说,系统集成过程中,接口的一些报错查询能力必不可少,今天我们就介绍一下,SAP和CRM系统集成中接口常见的报错。

weixin_43657667的博客 2046

如何构建高质量的 QA 问答知识库

NLP 技术落地最普遍的场景就是智能客服,如阿里的”小蜜“,京东的“JIMI”等等。NLP 技术也广泛应用于搜索系统。无论是“智能客服”,还是“搜索系统”,构建的前提是拥有“高质量的QA知识库”。今天聊聊“如何构建高质量QA知识库。”。 历史对话数据分布分析 基于公司现有系统积累的大规模对话文本数据,需要对文本数据进行归类处理,分析每个部分数据的占比,挖掘出有价值的文本通过 NLP 相关技术进行商业价值转化。下文以医疗领域来举例说明,通过输入对象,可以将文本分为客服输入和用户输入两部分。挖掘相关问题,主要从

Jiassheng的博客 2151

MySQL 分区表设计

MySQL 分区表设计 1、分区表常用操作; 2、分区表常见分区设计; 3、分区表datetime字段分区方案设计; 4、mysql复制表(同库、非同库); 5、低版本mysql分区表truncate方案;

java界的小学生 5481

Python爬虫教程:抓取地方政府网站的公开文件与政策信息

Web爬虫是指一种自动化脚本,用于模拟人类浏览器访问网页、提取网页内容的数据抓取工具。发送请求到目标网页;获取网页内容;解析网页内容,提取所需数据;将数据保存或进一步处理。爬虫可以抓取各种形式的数据,如文本、图片、文件等。本教程将重点展示如何抓取地方政府网站上公开的政策文件、公告等信息。许多政府网站都会采取一定的反爬虫措施,防止大量数据被爬取。IP封锁:如果短时间内大量请求来自同一IP,可能会被封锁。验证码:一些网站会使用验证码来验证访问者是否为机器人。动态加载。

2201_76125261的博客 1980

MySQL 表分区?涨知识了

文章目录1. 什么是表分区2. 分区的两种方式2.1 水平切分2.2 垂直切分3. 为什么需要表分区4. 分区实践4.1 RANGE 分区4.2 LIST 分区4.3 HASH 分区4.4 KEY 分区4.5 COLUMNS 分区5. 常见分区命令6. 小结 松哥之前写过文章跟大家介绍过用 MyCat 实现 MySQL 的分库分表,不知道有没有小伙伴研究过,MySQL 其实也自带了分区功能,我们可以创建一个带有分区的表,而且不需要借助任何外部工具,今天我们就一起来看看。 1. 什么是表分区 小伙伴们知道,M

江南一点雨的专栏 9064

【DEIM创新改进】独家下采样创新改进篇 | ECCV 2026 | DEIM 引入FSD-Down频域-空间动态下采样,在下采样过程中保留小目标的高频信息、助力小目标检测、遥感小目标检测有效涨点

🔥本文提出了一种名为FSD-Down的频域-空间动态下采样模块,用于改进DEIM网络模型在小目标检测中的性能。FSD-Down通过小波分解显式保留低频语义和高频细节,结合分组卷积、动态通道权重和可学习缩放因子,自适应强化目标边缘与纹理特征。该模块能有效减轻传统下采样造成的频率混叠和细节丢失,提升对小目标、密集目标和低对比度目标的检测能力。实验表明,FSD-Down计算开销可控,在保持实时性的同时显著提升检测精度,特别是在VisDrone和AITODv2数据集上对小目标的检测性能提升显著。

Ai缝合怪、助力小伙伴高效发论文 81

YOLOv11改进 | 网络结构代码逐行解析(一) | 项目目录构造分析

Hello,大家好这次给大家带来的不是改进,是整个YOLOv11项目的分析整个系列大概会更新5-7篇左右的文章从项目的目录到每一个功能代码的都会进行详细的讲解,下面开始进行YOLOv11逐行解析的第一篇——项目目录构造分析开头之前顺便给大家推荐一下我的专栏,本专栏更新上百余篇YOLOv11改进机制手把手教你添加到网络结构中,同时针对拿到模型不知道如何修改,不知道如何发表论文的读者进行针对性的文章介绍,本专栏质量分平均分96分,内容质量完全有所保证。

Snu77的博客 1万+

MySQL实现批量表分区完全示例

本文给出完整的脚本示例,对MySQL数据库常规表转换为分区表,并提供定期维护分区的脚本

不专业的专业人士 2560

15、基于最优传输的协作多视图聚类框架

本文提出了一种基于最优传输理论的协作多视图聚类框架,通过引入协作学习机制在不同视图间建立先验交互,以提升共识聚类的质量。框架包含两种新方法:协作共识投影方法(CoCP)和基于新表示的协作共识方法(CoCNR)。CoCP在全局空间中整合多视图信息并进行共识投影,而CoCNR则通过协作编码生成新的数据表示以实现更优聚类。方法利用熵正则化的Wasserstein距离与Wasserstein重心,有效捕捉数据分布间的几何结构,并通过聚合步骤获得统一模型。实验结果表明,所提方法在多个数据集上均优于现有方法,具有良好的

gpt4scribbler的博客 85

MySQL的表分区详解_MySQL 表分区详解

一、什么是表分区通俗地讲表分区是将一大表,根据条件分割成若干个小表。mysql5.1开始支持数据表分区了。如:某用户表的记录超过了1000万条,那么就可以根据入库日期将表分区,也可以根据所在地将表分区。当然也可根据其他的条件分区。二、为什么要对表进行分区为了改善大型表以及具有各种访问模式的表的可伸缩性,可管理性和提高数据库效率。分区的一些优点包括:1)、与单个磁盘或文件系统分区相比,可以存储更多的...

weixin_39992788的博客 420

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

mysql的表分区

1.RANGE alter table `cdb_test` partition by range (id) ( partition `p0` values less than (2), partition `p1` values less than (4), partition `p2` values less than (maxvalue) ) 2.List

怪只怪满眼尽是人间烟火 1170

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

MySQL 表分区 详解

@[toc] 松哥之前写过文章跟大家介绍过用 MyCat 实现 MySQL 的分库分表,不知道有没有小伙伴研究过,MySQL 其实也自带了分区功能,我们可以创建一个带有分区的表,而且不需要借助任何外部工具,今天我们就一起来看看。 1. 什么是表分区 小伙伴们知道,MySQL 数据库中的数据是以文件的形势存在磁盘上的,默认放在/var/lib/mysql/目录下面,我们可以通过show variables like '%datadir%';命令来查看: 我们进入到这个目录下,就可以看到我们定...

过客2019 4244

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

玩转MySQL:你知道什么是表分区吗

分库分表相信大家都听说过,但(partitioning)表分区这个概念却鲜为人知,MySQL在5.1版本中开始支持了表分区技术,同时在MySQL5.5中进行了优化,自从MySQL支持的绝大部分引擎都开启了表分区功能。 但到底什么是表分区技术呢?这似乎之前没怎么听说过呀,对吗? 如果你之前还没接触过表分区技术,或者只是听说但接触不深入,那就可以跟随本章携手共探鲜为人知的表分区技术!一起Let's go~

Java_LingFeng的博客 1394

Mysql之表分区

通俗地讲表分区是将一个大表,根据条件分割成若干个小表。mysql5.1开始支持数据表分区。如:某用户表的记录超过了600万条仓储信息,那么就可以根据入库日期将表分区,也可以根据所在地将表分区。当然也可根据其他的条件分区。

weixin_58286934的博客 1101

MySQL表分区

MySQL表分区(Partitioning)是一种将一个大表物理分割成多个更小、更易管理的部分的技术,每个部分被称为一个分区。MySQL从5.1版本开始正式支持表分区,它可以帮助优化查询性能,尤其是针对大型表的查询,同时也能提高管理和维护效率。请注意,上述示例仅用于说明MySQL分区的基本原理和创建方法,实际应用时需根据业务需求调整分区策略和细节。类似于Hash分区,但适用于不止一个列作为分区依据的情况,MySQL会自动选择合适的哈希函数。使用用户定义的表达式进行哈希运算,将行分配到不同分区。

代妈炼金术师 881

mysql 表分区案例_mysql表分区案例

0、整理表空间碎片optimize table tablename1、表分区按年分区,季度子分区alter tablekey_partpartitionby range(year(create_time))subpartitionbyhash(quarter(create_time))subpartitions4(partition p0values less than (2015),partit...

weixin_35971653的博客 572

mysql创建表分区

创建表分区 注意:创建分区个数最好是质数 DROP TABLE IF EXISTS `mg_zz_feature`; CREATE TABLE mg_zz_feature ( feature VARCHAR(50), fileCode VARCHAR(32), flag enum('0','1'), readFlag enum('0','1') ) ENGINE=InnoDB DEFAULT...

IT打工匠 3091

MySQL优化之表分区

MySQL优化是我们必须掌握的内容之一,因此表分区我们也是需要掌握的!

lingerlan510的博客 1582

MySql表分区介绍

一、什么是表分区        表分区就是就是把表的数据切分成不同的块进行存储,可以存储在不同的文件系统。而用户所选择的、实现数据分割的规则被称为分区函数,这在MySQL中它可以是模数,或者是简单的匹配一个连续的数值区间或数值列表,或者是一个内部HASH函数,或一个线性HASH函数。函数根据用户指定的分区类型来选择,把用户提供的表达式的值作为参数。该表达式可以是一个整数列值,或一个作用在一个或多...

lichenruozi的博客 399

MySQL的表分区

一、什么是表分区 通俗地讲表分区是将一大表,根据条件分割成若干个小表。mysql5.1开始支持数据表分区了。 如:某用户表的记录超过了600万条,那么就可以根据入库日期将表分区,也可以根据所在地将表分区。当然也可根据其他的条件分区。   二、为什么要对表进行分区 为了改善大型表以及具有各种访问模式的表的可伸缩性,可管理性和提高数据库效率。 分区的一些优点包括:       1)、与单

robert_gdk的专栏 445
上一篇: 1-kafka单机环境搭建
下一篇: 2-kafka集群环境搭建
stars
博客等级 码龄20年 271粉丝 115原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

stars

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值