现在的位置: 首页 > 综合 > 正文

mysql分区表—-column partition

2013年08月08日 ⁄ 综合 ⁄ 共 1236字 ⁄ 字号 评论关闭

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-----

 

 

抱歉!评论已关闭.