MySQL对已有数据的表进行分区表
2017-10-23 21:13
309 查看
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 新建一个和原来表一样的分区表,然后把数据从原表导出,接着倒入新表。
先创建分区表,然后导出原表数据,新表名称改为原表名,然后插入。CREATE TABLE `news` (
`new_id` int(5) NOT NULL AUTO_INCREMENT,
`new_title` varchar(130) NOT NULL,
`new_type` int(2) NOT NULL,
`new_img` varchar(100) NOT NULL,
`new_desc` text NOT NULL,
`new_user` varchar(100) NOT NULL,
`add_time` varchar(13) NOT NULL,
PRIMARY KEY (`new_id`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8
PARTITION BY RANGE (new_id)
(PARTITION p1 VALUES LESS THAN (200) ENGINE = MyISAM,
PARTITION p2 VALUES LESS THAN (400) ENGINE = MyISAM,
PARTITION p3 VALUES LESS THAN (600) ENGINE = MyISAM,
PARTITION p4 VALUES LESS THAN MAXVALUE ENGINE = MyISAM);
表建完之后,只需要吧原表的数据拷贝进新建的表中就好了。
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 新建一个和原来表一样的分区表,然后把数据从原表导出,接着倒入新表。
先创建分区表,然后导出原表数据,新表名称改为原表名,然后插入。CREATE TABLE `news` (
`new_id` int(5) NOT NULL AUTO_INCREMENT,
`new_title` varchar(130) NOT NULL,
`new_type` int(2) NOT NULL,
`new_img` varchar(100) NOT NULL,
`new_desc` text NOT NULL,
`new_user` varchar(100) NOT NULL,
`add_time` varchar(13) NOT NULL,
PRIMARY KEY (`new_id`)
) ENGINE=MyISAM AUTO_INCREMENT=6 DEFAULT CHARSET=utf8
PARTITION BY RANGE (new_id)
(PARTITION p1 VALUES LESS THAN (200) ENGINE = MyISAM,
PARTITION p2 VALUES LESS THAN (400) ENGINE = MyISAM,
PARTITION p3 VALUES LESS THAN (600) ENGINE = MyISAM,
PARTITION p4 VALUES LESS THAN MAXVALUE ENGINE = MyISAM);
表建完之后,只需要吧原表的数据拷贝进新建的表中就好了。
相关文章推荐
- MySQL对数据表已有表进行分区表
- MySQL对数据表已有表进行分区表
- MySQL对数据表已有表进行分区表
- 对已有数据的mysql表进行分区的最佳实践
- Mysql对已有数据表进行分区
- MySQL中使用innobackupex、xtrabackup进行大数据的备份和还原教程
- sqlserver数据导入mysql五:多线程导数据脚本(读取前面拆分的表名进行数据导入)
- sqlserver数据导入mysql七: 对mysql和sqlsever同一张表中的数据进行统计对比
- Kettle的应用——对mysql数据进行表输入与导出
- mysql 按周、日进行数据统计
- 报错:对象必须实现 IConvertible;以分隔符进行分割链接concat_ws的使用方法;mysql数据类型转换cast,convert
- 详解MySQL误操作后怎样进行数据恢复
- MySQL的源码安装及使用UDFs进行数据自动更新的教程
- EF Core下利用Mysql进行数据存储在并发访问下的数据同步问题
- MySQL 分区表原理及数据备份转移实战 推荐
- mysql if对数据进行处理 having对数据进行查询 thinkphp中的exp支持更复杂的where查询
- MYSQL 巧用count,sum进行统计数据
- MySQL中利用索引对数据进行排序的基础教程
- MySQL中使用innobackupex、xtrabackup进行大数据的备份和还原教程
- 在Python中对MySQL中的数据进行可视化