MySQL分区

本文深入探讨了MySQL的分区技术,包括Range、List、Hash和Key四种分区类型,以及子分区和分区维护。分区有助于管理大量数据,提高查询性能,允许跨磁盘存储,并能便捷地进行数据的增删查改操作。文章还详细介绍了各种分区类型的特点和应用场景,例如Range分区适用于按范围划分数据,List分区允许预定义值列表,Hash分区基于哈希算法均匀分布数据,而Key分区依赖MySQL服务器提供的哈希函数。此外,文章讨论了分区的维护,如分区查询、删除、新增、重组织等操作。
摘要由CSDN通过智能技术生成

一张表的数据在物理层面都是存放在一起的。随着业务增长,当一张表的数据量过大时,会带来不便。而分区可以将一张表从物理层面根据一定的规则将数据划分为多个分区,分区可以单独管理,存放在不同的磁盘,提升效率。

分区表的优点:

  • 数据可以跨磁盘/文件系统存储,适合存储大量数据 。
  • 数据的管理非常方便,以分区为单位操作数据,不会影响其他分区的正常运行。
  • 数据查询上在某些条件可以利用分区裁剪特性,将搜索范围快速定位到特性分区,提升查询性能。
  • 对于应用来说,表依然是一个逻辑整体,但数据库可以针对不同的数据分区独立执行管理操作,不影响其他分区的运行。而数据划分的规则即称为分区函数,数据写入表时,会根据运算结果决定写入哪个分区。
  • MySQL的分区插件与存储引擎运行在不同的层,因此大部分存储引擎都可以利用MySQL的分区特性,只有少数存储引擎(merge,CSV,federated)不支持分区特性。若某张表使用的分区特性,则所有的分区都需要使用相同的存储引擎,且分区特性会同时应用到数据和索引上。

MySQL的分区类型:

一、分区的类型

1. Range partition(范围分区)
2. List partition(列表分区)
3. Hash partition(哈希分区)
4. Key partition(键值分区)

二、subparitioning(子分区)

三、分区的基本维护


一、分区的类型

  1. Range partition(范围分区)
    Range partition是按照分区表达式的运算结果,判断结果落在某个范围内,从而将数据存储在对应的分区。各个分区定义之间需要连续且不能重叠,范围分区通过partition by range子句定义,而分区的范围通过values less than子句划分。

例:定义一个员工表,根据员工ID分区,110号员工一个分区,1120号员工一个分区,依次类推,共建立4个分区:


create table employees (
    id int not null primary key,
    first_name varchar(30),
    last_name varchar(30))
    partition by range(id)(
    partition p0 values less than (11),
    partition p1 values less than (21),
    partition p2 values less than (31),
    partition p3 values less than (41)

现在随便插入几条数据:

insert into employees values(1,'Vincent','Chen');
insert into employees values(6
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值