gpt4 book ai didi

Mysql分区过时

转载 作者:行者123 更新时间:2023-11-29 05:10:38 26 4
gpt4 key购买 nike

我有一个表,它会随着时间的推移而变大,而且我只需要少量的数据,比如最近 7 天。

我想将它配置为 7 天的数据进入一个分区,然后进入下一个分区。这样我将只保留两个分区并存档其他分区。

我阅读了有关 MySQL 分区的信息 here但是文章中创建分区的方式是我们在只创建表时指定所有分区。

我不确定这是我们长时间添加分区逻辑的最佳方式。

有什么想法吗?

最佳答案

不幸的是,这将是一个相当手动的过程。最好的办法是提前一周一周地创建分区,然后有一个定期运行的作业将旧数据归档到“catchall”分区中。

例如与:

PARTITION BY RANGE ( TO_DAYS(date) ) (
PARTITION pmin VALUES LESS THAN ( TO_DAYS('2016-10-02 00:00:00') ),
PARTITION p1 VALUES LESS THAN ( TO_DAYS('2016-10-09 00:00:00') ),
PARTITION p2 VALUES LESS THAN ( TO_DAYS('2016-10-16 00:00:00') ),
PARTITION p3 VALUES LESS THAN ( TO_DAYS('2016-10-23 00:00:00') ),
PARTITION pmax VALUES LESS THAN (MAXVALUE)
);

将一些空分区放在那里并设置更高的日期然后每周“轮类”一次并没有什么真正的危害。只要当您更改分区定义时,数据窗口会按分区大小移动,它就足够快了。

你的工作会做类似的事情

ALTER TABLE x REORGANIZE PARTITION pmin,p1 INTO (
PARTITION pmin VALUES LESS THAN ('2016-10-09 00:00:00')
);

ALTER TABLE x
ADD PARTITION px VALUES LESS THAN ( TO_DAYS('2016-10-30 00:00:00') )
);

关于Mysql分区过时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39897721/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com