我每天都会在 IS 中收到数千条录音,并且我必须在几年内逐行跟踪这些录音。
然后处理每日数据以得出 KPI,并确定对这些记录要采取的操作。
所谓的热数据平均保存6个滚动个月,而冷数据则被隔离,以便可以根据需要并出于法律原因重新加载。
当前的解决方案是将所有超过 6 个月的数据移至归档表。 数据存储在 myisam 中的 mariadb 下。
尽管数据量很大,隔离操作也没有问题。但是,每次数据清除后,我都必须对受影响的表执行TABLE OPTIMIZE,有时需要几个小时。 结果是表被阻塞并且这些表上的处理停止,这在太长的时间内不是一个选择。
是否有人对架构、其他技术解决方案、技术或技巧有任何想法,可以使我的 IS 更具弹性、可扩展性和健壮性?
到目前为止,还没有采取任何特别措施来解决这个问题,因为我还不知道要采取什么行动。
我强烈推荐InnoDB。
PARTITIONing
,如果操作正确,是删除“旧”数据的最佳方法。 它还可以用于将已删除的数据“移动”到其他地方。
请参阅分区了解如何按月(或更短的时间范围)进行分区。 它还解释了如何使用“可传输表空间”来捕获已删除的数据。
以上不需要OPTIMIZE TABLE
。
是否存在磁盘空间问题? 如果没有,我想知道为什么你需要删除旧数据。