在我们公司的一个应用程序中,我们从我们的服务器收集统计数据(负载、磁盘使用情况等)。由于有大量数据,而且我们并不总是需要所有数据,我们有一个“压缩”例程来获取原始数据并计算最小值。许多数据点的最大值和平均值,将这些新值存储在同一个表中,并在几周后删除旧值。
现在我的任务是重写这个压缩例程,新的例程必须将我们拥有的所有未压缩数据保存一年在一个表中,并将“压缩”数据保存在另一个表中。我现在主要关心的是如何处理不断写入数据库的数据以及是否使用“事务表”(我自己的术语,因为我想不出更好的,我不是在谈论提交/rollback 事务功能)。
截至目前,我们的数据收集器将所有信息插入到一个名为的表中ovak_result
,压缩后的数据最终将以ovak_resultcompressed
. ovak_resultuncompressed
但是,创建一个名为并仅用ovak_result
作“临时存储”的表有什么特定的好处或缺点吗?ovak_result
将保持最小,这对压缩例程有好处,但我需要不断地将一个表中的所有数据洗牌到另一个表中,并且会不断地读取、写入和删除ovak_result
.
MySQL中是否有任何机制来处理这些事情?
(请注意:我们在这里谈论的是相当大的数据集(未压缩表中大约有 100 M 行,压缩表中大约有 1-10 M 行)。此外,我可以通过软件和硬件配置来做几乎我想做的事情因此,如果您有任何涉及 MySQL 配置或硬件设置的提示或想法,请直接提出。)