mysql 分区表 range分区

本文介绍了MySQL中如何创建Range分区表,包括按年龄范围、时间戳timestamp范围以及DATE、DATETIME范围进行分区的方法,并展示了不同分区的例子,强调了在分区时主键和唯一索引列的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先呢我们来看下怎么创建一个分区表

在上节课的时候 我们也说过 在分区的时候
如果分区字段中有主键或者唯一索引的列,那么多有主键列和唯一索引列都必须包含进来。

1 ,按照年龄的范围
create table staff_r12(
id int not null auto_increment,
name varchar(40) not null,
age int not null,
primary key (id,age)
)engine=myisam default charset=utf8
partition by range(age)(
partition age_1 values less than(20),
partition age_2 values less than(40),
partition age_3 values less than maxvalue
);

2,按照时间戳timestamp范围来分区

create table staff_r13(
id int not null,
staff_status varchar(20) not null,
report_updated timestamp not null default current_timestamp on update current_timestamp
)
partition by range(unix_timestamp(report_updated))(
partition p0 values less than (unix_timestamp(‘2008-01-01 00:00:00’)),
partition p1 values less than (unix_timestamp(‘2008-04-01 00:00:00’)),
partition p2 values less than (unix_timestamp(‘2008-07-01 00:00:00’)),
partition p3 values less than (unix_timestamp(‘2008-10-01 00:00:00’)),
partition p9 values less than maxvalue
);

6.1.3、根据DATE、DATETIME范围
mysql不支持在日期类型上面直接创建分区,需要借助函数来创建
create table staff_14(
name varchar(25) not null,
age int not null,
joined date not null
)
partition by range columns(joined)(
partition p0 values less than (‘1960-01-01’),
partition p1 values less than (‘1970-01-01’),
partition p2 values less than (‘1980-01-01’),
partition p3 values less than (‘1990-01-01’),
partition p4 values less than maxvalue
);
6.1.4、RANGE分区在如下场合特别有用

create table staff_15(
id int not null,
name varchar(30),
joined date not null default ‘9999-12-31’
)engine=myisam default charset=utf8
partition by range(year(joined))(
partition p0 values less than (2016),
partition p1 values less than (2017),
partition p4 values less than MAXVALUE
);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

陈小珂

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

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

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

打赏作者

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

抵扣说明:

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

余额充值