MySQL分区表

2024年 1月 18日 35.1k 0

1.对表进行分区的原因和场景

改善大表、具有各种访问模式的表的可伸缩性、可管理性,提高效率
优点:
与单个磁盘或文件系统分区相比,可存储更多的数据,2T→16T;
通过删除与增加有关数据的分区,很容易删除或增加那些数据;
一些查询能得到优化;
通过跨多个磁盘甚至服务器分散查询,获得更大的查询吞吐量;
MySQL5.5之后支持所有函数的分区优化,之前只有两个聚合函数可以使用在分区表中。

2.分区类型

基本分区类型:
RANGE分区:基于属于一个给定连续区间的列值,把多行分配给分区
LIST分区:类似于按RANGE分区,区别是LIST分区是基于列值匹配一个离散值集合中的某个值来进行选择
HASH分区:基于用户定义的表达式的返回值来进行选择分区,该表达式使用将要插入到表中的这些行的列值进行计算,这个函数可以包含MySQL中有效的、产生非负整数值的任何表达式
KEY分区:类似于HASH分区,区别在于KEY分区只支持计算一列或多列

3.RANGE分区

改成分区表:

alter table titles
partition by range (year(from_date)) #基于from_date列中的年份来分区
(
partition p01 values less than (1985),
partition p02 values less than (1986),
partition p03 values less than (1987),
partition p04 values less than (1988),
partition p15 values less than (1999),
partition p16 values less than (MAXVALUE)
);

直接创建分区表:

create table t1 (id int ,name varchar(20), age int)
partition by range(age)
(
partition p01 values less than (10), #不包括10,即

相关文章

Oracle如何使用授予和撤销权限的语法和示例
Awesome Project: 探索 MatrixOrigin 云原生分布式数据库
下载丨66页PDF,云和恩墨技术通讯(2024年7月刊)
社区版oceanbase安装
Oracle 导出CSV工具-sqluldr2
ETL数据集成丨快速将MySQL数据迁移至Doris数据库

发布评论