mysql分区表----column partition

author:skate
time:2012/11/28


mysql分区----column partition

 

mysql从5.5开始支持column分区,也可以认为是range和list分区的升级版,column分区可以要求分区键是integer或要转化为interger,而且range column可以对多个列进行分区,在5.5之后,可以用column分区替换range和list分区,但是column分区是有限制的,column分区不接受表达式,只接受普通列

单列的column range分区
mysql> show create table list_c;
 CREATE TABLE `list_c` (
  `c1` int(11) DEFAULT NULL,
  `c2` int(11) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
/*!50500 PARTITION BY RANGE  COLUMNS(c1)
(PARTITION p0 VALUES LESS THAN (5) ENGINE = InnoDB,
 PARTITION p1 VALUES LESS THAN (10) ENGINE = InnoDB) */

多列的column range分区
mysql> show create table list_c;
 CREATE TABLE `list_c` (
  `c1` int(11) DEFAULT NULL,
  `c2` int(11) DEFAULT NULL,
  `c3` char(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
/*!50500 PARTITION BY RANGE  COLUMNS(c1,c3)
(PARTITION p0 VALUES LESS THAN (5,'aaa') ENGINE = InnoDB,
 PARTITION p1 VALUES LESS THAN (10,'bbb') ENGINE = InnoDB) */

单列的column list分区
mysql> show create table list_c;
 CREATE TABLE `list_c` (
  `c1` int(11) DEFAULT NULL,
  `c2` int(11) DEFAULT NULL,
  `c3` char(20) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1
/*!50500 PARTITION BY LIST  COLUMNS(c3)
(PARTITION p0 VALUES IN ('aaa') ENGINE = InnoDB,
 PARTITION p1 VALUES IN ('bbb') ENGINE = InnoDB) */

column支持的数据类型:
1.所有的整型,float和decimal不支持
2.日期类型:date和datetime,其他不支持
3.字符类型:CHAR, VARCHAR, BINARY和VARBINARY,blob和text不支持 

 

 

-----end-----

 

 

你可能感兴趣的:(Mysql,Management)