1

我必须按日期范围划分几个表。我是否必须删除主表或重新加载完整数据才能对这些表进行分区?

有些表确实包含超过 5000 万行。

alter table temp_table_test1
partition by range (unix_timestamp(created_at))
(
    partition p01 values less than (unix_timestamp('2015-02-01')),
    partition p02 values less than (unix_timestamp('2015-02-01')),
    partition p03 values less than (unix_timestamp('2015-02-01')),
    partition p04 values less than (unix_timestamp('2015-02-01')),
    partition p02 values less than (maxvalue)
);

这是我正在使用的脚本。

4

1 回答 1

1

如果您还没有分区,则无需执行任何操作。根据这个线程,这将自动完成:

您可以使用 ALTER TABLE 为表添加分区,但请记住,这实际上会首先创建新的分区表,然后复制所有现有数据,最后删除旧的未分区表。所以这个操作可能需要一段时间,并且会暂时使用两倍的磁盘空间(在 InnoDB 的情况下不会返回给操作系统......)

于 2015-06-05T08:53:18.893 回答