我有一个mysql表,其分区如下所示
p2015h1 - Contains data where date < 2015-07-01 (Has data from 2016-06-01. Hence only month worth of data)
p2015h2 - Contains data where date < 2016-01-01
p2016h1 - Contains data where date < 2016-07-01
p2016h2 - Contains data where date < 2017-01-01
我希望新分区的季度基础如下 -
p0 - Contains data where date < 2015-10-01
p1 - Contains data where date < 2016-01-01
p2 - Contains data where date < 2016-04-01
p3 - Contains data where date < 2016-07-01
我开始重组第一个分区&amp;执行以下命令。一切顺利。
alter table `table1` reorganize partition `p2015half1` into (partition `p0` values less than ('2015-10-01'));
现在,由于现有分区p2015h2
的数据包含最多2015-10-01
的数据,我如何将此部分移至分区p0
?我还需要对其他分区做同样的事情,因为我继续构建新的分区。
我确实试图完全删除桌面上的分区,但是,该表的大小和行数是数十亿行。因此,手术需要数天。发布这个我将不得不重建分区,这将需要几天。因此,我决定采用分割分区的方法。
我现在被困住了。我非常感谢任何指导。
答案 0 :(得分:0)
mysql> alter table `table1` reorganize partition p0,p2015half2 into (partition p00 values less than ('2015-07-01'), partition p1 values less than ('2016-01-01'));
mysql> alter table `table1` reorganize partition p00 into (partition p0 values less than ('2015-07-01'));
mysql> alter table `table1` reorganize partition p2016half1,p2016half2 into (partition p2 values less than ('2016-04-01'), partition p3 values less than ('2016-07-01'),partition p4 values less than maxvalue);