vlambda博客
学习文章列表

mysql在已有无分区表增加分区

mysql在已有无分区表增加分区,mysql5.5才有,可以是innodbfileper_table关闭状态。

from: http://docs.oracle.com/cd/E17952_01/refman-5.5-en/alter-table-partition-operations.html


mysql5.1的时候新增的partition,解决了比较简单的sharding的策略


mysql在已有表增加partition,mysql5.5才有,可以是innodb_file_per_table关闭状态.

 

##初始表

CREATE TABLE IF NOT EXISTS `ccc` (

  `a` int(11) NOT NULL AUTO_INCREMENT,

  `b` int(11) NOT NULL,

  PRIMARY KEY (`a`)

) ENGINE=InnoDB;

 

#更改表为partition

ALTER TABLE ccc

PARTITION BY RANGE(a)(

PARTITION p0 VALUES LESS THAN (2),

PARTITION p1 VALUES LESS THAN (10)

);

 

 

#添加分区

ALTER TABLE ccc

ADD PARTITION (

PARTITION p2 VALUES LESS THAN (20)

)

 

#添加分区

ALTER TABLE ccc

ADD PARTITION (

PARTITION p3 VALUES LESS THAN (30)

)

 

#添加分区只能按value增加,所以不要使用

# PARTITION pz VALUES LESS THAN MAXVALUE