重庆思庄Oracle、Redhat认证学习论坛

标题: [原创]mysql分区表的一些概念和操作 [打印本页]

作者: jikcheng    时间: 2014-11-7 17:19
标题: [原创]mysql分区表的一些概念和操作
 分区表顾名思义。把数据分区并且查看。目的是为了更快的检索数据。
创建分区表 有几种分区可以选择。
范围分区:range
create table orders_range(
id int auto_increment primary key,
customer_surname varchar(30),
store_id int ,salesperson_id int,
order_date date ,note varchar(500)
) engine = innodb
partition by range(id) (
partition p0 values less than (10000),
partition p1 values less than (20000),
partition p2 values less than (30000),
partition p3 values less than (40000),
partition p4 values less than (50000)
);

列表分区:
 create table  orders_list(
 id int auto_increment,customer_surname varchar(30),store_id int,
 salesperson_id int ,
 order_date date ,
 note varchar(500),
 index idx(id)) engine = innodb
 partition by list (store_id) (
 partition p0 values in (1,3,4,17),
 partition p1 values in (2,12,14),partition p2 values in (6,8,20),
 partition p3 values in (5,7,9,11,16),
 partition p4 values in (10, 13,15,18)
 );
哈希值分区:
create table orders_hash (
id int auto_increment primary key , customer_surname varchar(30),
store_id int, salesperson_id int ,order_date date,
note varchar(500)) engine =innodb
partition by hash(id) partitions 4;
key 分区:
create table orders_key(
id int auto_increment,customer_surname varchar(30),store_id int,
salesperson_id int ,order_date date, note varchar(500),
index idx (id) ) engine=innodb
partition by key (order_date) partitions 4;

分区的操作:

增加分区:

可以转换分区。
exchange 把 一分区的数据传输到一张没有分区的表上。

删除分区。
注意:不能删除哈希值。key值的分区表。
语法:
alter table orders_list drop partition p2
删除分区 则会删除数据。慎用。

作者: 郑全    时间: 2014-11-28 10:25
这个概念和 oracle分区表类似,mysql缺少组合分区吗?




欢迎光临 重庆思庄Oracle、Redhat认证学习论坛 (http://bbs.cqsztech.com/) Powered by Discuz! X3.2