我必须按日期范围划分一些表。我是否必须删除主数据库或重新加载完整的数据才能对这些表进行分区?
有些表确实包含超过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)
);
这是我正在使用的脚本。
如果还没有分区,则无需执行任何操作。根据此线程,它将自动完成:
您可以使用ALTER TABLE向表中添加分区,但请记住,尽管这实际上将首先创建新的分区表,然后复制所有现有数据,最后删除旧的未分区表。因此,此操作可能需要一段时间,并且会临时使用两倍的磁盘空间(在InnoDB的情况下,不会将其退还给操作系统...)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句