mysql的表分区

大概有五种:

1.range 范围分区:例如按照时间范围

create table range(
  id int(11),
  money int(11) unsigned not null,
  date datetime
  )partition by range(year(date))(
  partition p2007 values less than (2008),
  partition p2008 values less than (2009),
  partition p2009 values less than (2010)
  partition p2010 values less than maxvalue
);
2.list 例如多个类型的数据:
create table list(
  a int(11),
  b int(11)
  )(partition by list (b)
  partition p0 values in (1,3,5,7,9),
  partition p1 values in (2,4,6,8,0)
 );
  3.hash
create table hash(
  a int(11),
  b datetime
  )partition by hash (YEAR(b)
  partitions 4;
 
4.key
create table t_key(
  a int(11),
  b datetime)
  partition by key (b)
  partitions 4;
 
=============================
 
 
如何添加分区?
ALTER TABLE sale_data
ADD PARTITION (PARTITION p201010 VALUES LESS THAN (201011));
如何删除分区?
ALTER TABLE sale_data DROP PARTITION p201010;
 
分区合并:
ALTER TABLE sale_data
REORGANIZE PARTITION p201001,p201002,p201003,
p201004,p201005,p201006,
p201007,p201008,p201009 INTO
(
PARTITION p2010Q1 VALUES LESS THAN (201004),
PARTITION p2010Q2 VALUES LESS THAN (201007),
PARTITION p2010Q3 VALUES LESS THAN (201010)
);
 
 
 
 
 
 
 
posted @ 2017-02-10 09:56  猪哥哥厉害  阅读(264)  评论(0编辑  收藏  举报