有关 mariadb 数据库和 myisam 表的数据处理和优化的架构问题

问题描述 投票:0回答:1

我每天都会在 IS 中收到数千条录音,并且我必须在几年内逐行跟踪这些录音。

然后处理每日数据以得出 KPI,并确定对这些记录要采取的操作。

所谓的热数据平均保存6个滚动个月,而冷数据则被隔离,以便可以根据需要并出于法律原因重新加载。

当前的解决方案是将所有超过 6 个月的数据移至归档表。 数据存储在 myisam 中的 mariadb 下。

尽管数据量很大,隔离操作也没有问题。但是,每次数据清除后,我都必须对受影响的表执行TABLE OPTIMIZE,有时需要几个小时。 结果是表被阻塞并且这些表上的处理停止,这在太长的时间内不是一个选择。

是否有人对架构、其他技术解决方案、技术或技巧有任何想法,可以使我的 IS 更具弹性、可扩展性和健壮性?

到目前为止,还没有采取任何特别措施来解决这个问题,因为我还不知道要采取什么行动。

database mariadb myisam
1个回答
0
投票

我强烈推荐InnoDB。

PARTITIONing
,如果操作正确,是删除“旧”数据的最佳方法。 它还可以用于将已删除的数据“移动”到其他地方。

请参阅分区了解如何按月(或更短的时间范围)进行分区。 它还解释了如何使用“可传输表空间”来捕获已删除的数据。

以上不需要

OPTIMIZE TABLE

是否存在磁盘空间问题? 如果没有,我想知道为什么你需要删除旧数据。

© www.soinside.com 2019 - 2024. All rights reserved.