社区
MySQL
帖子详情
修改表为分区表
ybgba
2013-10-08 11:42:44
如题,我有一张普通表,现在想修改为range分区表,不知道可以修改吗?我在文档上看到使用partition by可以将普通表变成hash分区表,但是没有alter table成range表的说法,请教。谢谢。
...全文
664
9
打赏
收藏
修改表为分区表
如题,我有一张普通表,现在想修改为range分区表,不知道可以修改吗?我在文档上看到使用partition by可以将普通表变成hash分区表,但是没有alter table成range表的说法,请教。谢谢。
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
9 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
qdjyyl3
2014-03-13
打赏
举报
回复
使用partition by语法
ybgba
2013-10-14
打赏
举报
回复
是的 这样是比较直接的方式,但是如果数据量比较大怎么办,比如200G+的数据,我不可能停机一天来搞这个。
iihero
2013-10-10
打赏
举报
回复
5楼的方法已经很直接了。
ybgba
2013-10-09
打赏
举报
回复
我也有过这样的想法,但是费时费力啊,数据不大90G左右。我在考虑是否有其他更快的方法,正在测试中。
heisetaiyang
2013-10-08
打赏
举报
回复
之前我也碰到这个问题,我的方法是:先备份数据,然后drop掉表,建分区表,最后把数据从备份表导入到分区表。
ybgba
2013-10-08
打赏
举报
回复
我使用alter table test_range partition by range (id) (partition p0 values than (2000))得到不一样的报错:ERROR 1526 (HY000): Table has no partition for value 2038 经过检查,这个表内有数据,无法进行分区?我将数据全部删除后 创建分区成功。继续尝试。
ybgba
2013-10-08
打赏
举报
回复
我的mysql版本是5.5.34
ybgba
2013-10-08
打赏
举报
回复
这样是不行的 报错: ERROR 1505 (HY000): Partition management on a not partitioned table is not possible 我的建表语句: CREATE TABLE `test_range` ( `id` int(11) NOT NULL AUTO_INCREMENT, `name` varchar(10) DEFAULT NULL, PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=786433 DEFAULT CHARSET=latin1 建表的时候没有指定range column,然后再add partition的时候语句不能认出那个column进行range
ACMAIN_CHM
2013-10-08
打赏
举报
回复
ALTER TABLE ADD PARTITION (PARTITION p3 VALUES LESS THAN (2000));
MySQL普通表转换为
分区表
实战指南
本文将详细指导新手开发者如何将MySQL中的普通表转换为
分区表
。
分区表
在处理庞大数据集时展现出显著的性能优势,不仅能大幅提升查询速度,还能有效简化数据维护工作。通过掌握这一技巧能够更好地应对数据密集型应用带来的挑战,为系统的高效运行奠定坚实基础。
Oracle-大表改造
分区表
实施步骤
对于业务交易繁忙的数据库,在运行了一定时间后往往会产生一些数据量较大的表,特别是对于每天新增数据较多的日志表或者流水表,单表数据量通常会达到几十G,甚至是上百G。大表对于日常的运维非常的不方便,特别是在表数据的清理、迁移,查询性能会随着数据量的增大而受到影响,因此,通常对于大表我们需要进行优化拆分,在Oracle数据库,比较常见的大表优化拆分是将大表改造为
分区表
,这种方式最主要的好处就是对于应用透明,应用层面的改动很少
hive
修改
分区表
添加分区 ALTER TABLE table_name ADD PARTITION (partCol = 'value1') location 'loc1'; //示例 ALTER TABLE table_name ADD IF NOT EXISTS PARTITION (dt='20130101') LOCATION '/user/hadoop/warehouse/table_name/
Oracle普通表
修改
为
分区表
的方法
数据库版本是9.2.0.6 需要将几个1T左右的普通表变更为
分区表
. 尝试过下面三种方法: 1.先创建空的
分区表
,然后将原表中的数据insert进去; 2.使用Oracle的在线重定义工具 3.CTAS方法. 执行办法,比较: 第一种方法:先创建空的
分区表
,然后将原表中的数据insert进去 SQL> create table t as select object_id,object_n...
普通表转换
分区表
操作步骤
普通表转换
分区表
操作步骤 前期准备 1.先用户授权 SQL> grant execute on DBMS_REDEFINITION to ; 2.获取原来表的元数据。可通过dbms_metadata.get_ddl获取元数据. 3.需要确保预先创建的分区能够存放所有已有数据,否则重定义过程会出错。 查看数据时间,重要维度等 -- select min(CREATE_TIME
MySQL
56,938
社区成员
56,755
社区内容
发帖
与我相关
我的任务
MySQL
MySQL相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MySQL相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章