mysql表分区 笔记_[笔记] MySql表分区——partition

将某张表的数据,分别存储到不同的区域中。每个分区都是独立的表,都要存储该分区数据的数据、索引等信息。

使用mysql的分区功能,可以把一个大的数据表分成多个小份,用户不需要区分不同的表名。

一、分区算法

1. 按照某个字段取余 key

create table post (

id int unsigned not null AUTO_INCREMENT,

title varchar(255),

PRIMARY KEY (id)

) engine = innodb

partition by key (id) partitions 5;

2. 按照某个表达式取余 hash

create table student_hash(

id int unsigned not null auto_increment,

birthday date,

PRIMARY KEY(id,birthday);

) engine=myisam

partition by hash (month(birthday)) patitions 12;

3. 根据范围分区 range

create table goods (

id int,

uname char(10)

)engine myisam

partition by range(id) (

partition p1 values less than (10),

partition p2 values less than (20),

partition p3 values less than MAXVALUE

);

4. 根据散点值分区 list

create table user (

uid int,

pid int,

uname

)engine myisam

partition by list(pid) (

partition bj values in (1),

partition ah values in (2),

partition xb values in (4,5,6)

);

二、分区管理

1. 取余算法 key hash

采用取余算法的分区数量的修改,不会导致已有分区数据的丢失,需要重新分配数据到新的分区

增加分区: add partition N;

减少分区:coalesce partition N;

2. 条件算法 list range

添加分区

alert table goods add partition(

partition p4 values less than 40);

删除分区

alert table goods drop partition p1;

注意:删除条件算法的分区,会导致分区数据的丢失

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值