mysql表分区

分区类型
1. 范围分区

range:表示范围分区。RANGE只能对整数类型的字段分区,不是整型的话需要用函数转换

CREATE TABLE test (
	id INT NOT NULL,
	first_name VARCHAR (20),
	last_name VARCHAR (20),
	birthday date,
	PRIMARY KEY (`id`)
)partition by range(id)(
	partition p0 values less than (3),
	partition p1 values less than (5),
	partition p2 values less than (7)
)
# 当插入大于分区的时报错: Table has no partition for value 10
insert into test VALUES (1,'张','三','1981-01-01'),(3,'王','五','1991-01-01'),(5,'李','四','2020-01-01')
#可添加另一个分区,大于分区的都放在这里
alter table test add partition (partition p3 values less than(MAXVALUE))

# 查询id 为5 的,然后看partitions栏,可以发现是p2
explain select * from test WHERE id = 5
  • 添加分区
alter table test add partition (partition p3 values less than(9))
  • 删除分区
#删除分区后对应分区内所有数据也会删除
alter table test drop partition p3
  • 拆分分区
#把之前的大于7的数据重新分区为p3(9),和p4(maxvalue),分区数据没有丢失,而是重新分配进这两个分区,可插入数据后验证
alter table test reorganize partition p3 into (
	partition p3 values less than (9),
	partition p4 values less than (MAXVALUE)
)
  • 合并分区
#同拆分分区,数据不回丢失
alter table test reorganize partition p3,p4 into (
	partition p3 values less than (maxvalue)
)
2. hash分区
2. 键值分区
3. 列表分区
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值