mysql 已有表创建表分区_MySQL对数据表已有表进行分区表

1.由于数据量较大,对现有的表进行分区

操作方式.

可以使用ALTER TABLE来进行更改表为分区表,这个操作会创建一个分区表,然后自动进行数据copy然后删除原表,

猜测服务器资源消耗比较大。

ALTER TABLE tbl_rtdata PARTITION BY RANGE (Month(fld_date))

(

PARTITION p_Apr VALUES LESS THAN (TO_DAYS('2012-05-01')),

PARTITION p_May VALUES LESS THAN (TO_DAYS('2012-06-01')),

PARTITION p_Dec VALUES LESS THAN MAXVALUE );

**

2 新建一个和原来表一样的分区表,然后把数据从原表导出,接着倒入新表。 **

(原来的表主键只有id,而我的分区字段是 stsdate, 这里主键要修改为 id,stsdate 联合主键,分区表要求分区字段要是主键或者是主键的一部分)

操作过程

采用第二种方案。先创建分区表,然后导出原表数据,新表名称改为原表名,然后插入,最后建立普通索引。

建立分区表

CREATE TABLE `apdailysts_p` (

`id` INT(11) NOT NULL AUTO_INCREMENT,

`ap_id` INT(11) NOT NULL,

`mac` VARCHAR(17) NOT NULL,

`liveinfo` LONGTEXT NOT NULL,

`livetime` INT(11) NOT NULL,

`stsdate` DATE NOT NULL,

`lastmodified` DATETIME NOT NULL,

PRIMARY KEY (`id`, `stsdate`)

)

PARTITION BY RANGE COLUMNS(stsdate) (

PARTITION p0 VALUES LESS THAN ('2016-06-01'),

PARTITION p1 VALUES LESS THAN ('2016-07-01'),

PARTITION p2 VALUES LESS THAN ('2016-08-01'),

PARTITION p3 VALUES LESS THAN ('2016-09-01'),

PARTITION p4 VALUES LESS THAN ('2016-10-01'),

PARTITION p5 VALUES LESS THAN ('2016-11-01'),

PARTITION p6 VALUES LESS THAN ('2016-12-01'),

PARTITION p7 VALUES LESS THAN ('2017-01-01'),

PARTITION p8 VALUES LESS THAN ('2017-02-01'),

PARTITION p9 VALUES LESS THAN ('2017-03-01'),

PARTITION p10 VALUES LESS THAN ('2017-05-01'),

PARTITION p11 VALUES LESS THAN ('2017-06-01'),

PARTITION p12 VALUES LESS THAN ('2017-07-01'),

PARTITION p13 VALUES LESS THAN ('2017-08-01'),

PARTITION p14 VALUES LESS THAN ('2017-09-01'),

PARTITION p15 VALUES LESS THAN MAXVALUE

);

导出数据

mysqldump -u dbname -p --no-create-info dbname apdailysts > apdailysts.sql

修改表名,导入数据(10分钟就导入完了,200w, 8g多一点数据),测试下,删除原来的表。

测试可以正常使用,观察几天天。。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值