您的位置:首页 > 数据库 > MySQL

mysql分区表

2016-08-17 11:27 316 查看
分区表

分区表的优点:
数据分开存放在不同的文件,可以支持更大的数据文件
在某些特定条件下能提高查询、删除、更新的效率

1、range分区表
mysql> create table mytest(id int,name varchar(20) not null,birthday date,primary key(id,birthday))auto_increment=1 partition by range(year(birthday))( partition p01 values less than (2000), partition p02 values less than (2010), partition p03 values less than maxvalue);

练习:创建一个新表,包含学生编号,学生姓名,联系电话、所属院系四个字段,其中院系为5个数字值,分别为
1、2、3、4、5代表五个不同的院系,要求将表里面的数据按院系分别保存到5个不同的数据文件,创建完成后
观察数据文件的名称和大小等信息,并插入几条数据

2、list分区表
mysql> create table mytest1(sid int not null,name varchar(20),area varchar(10)) partition by list (sid) (partition p01 values in (1,2), partition p02 values in (3,4),partition p03 values in (5,6));
注意:要求分区的列必须是整数类型

练习:创建一个包含员工id、员工姓名、员工住址的表,将员工id的尾数为1、4、7的存放到p01分区,2、5、8的
存放到p02分区,3、6、9存放到p03分区,然后存储id为1-10的10个数据,观察存储情况

mysql> create table xixi(id int not null,name varchar(20),addr varchar(10)) partition by list (id%10) (partition p01 values in (1,4,7),partition p02 values in (2,5,8),partition p03 values in (3,6,9));

3、hash分区表
mysql> create table mytest1(sid int not null,name varchar(20),area varchar(10)) partition by hash (sid) partitions 3;

mysql> create table mytest1(sid int not null,name varchar(20),area varchar(10)) partition by linear hash (sid) partitions 3;

4、key分区
mysql> create table mytest1(sid int not null,name varchar(20),area varchar(10)) partition by key (area) partitions 3;

mysql> create table mytest1(sid int not null,name varchar(20),area varchar(10)) partition by linear key (area) partitions 3;
5、分区管理
新增分区
mysql> alter table sinfo add partition (partition gd06 values less than (7));
mysql> alter table mytest1 partition by key(area) partitions 4;

alter table haha add partition (partition p03 values in (3,6,9));

删除分区
mysql> alter table sinfo drop partition gd01;
mysql> alter table mytest1 partition by key(area) partitions 3;

合并分区

mysql> alter table sinfo reorganize partition p03,p04 into (
-> partition p034 values in (0,3,6,9));
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  MySQL