我有了一个DEVICE_STATUS表看起来是这样的一个MySQL数据库的Web应用程序...战略来处理大型数据集的大量插入到表
deviceid | ... various status cols ... | created
此表被插入多少次一天(每台设备每天2000+以上(估计到今年年底将有100多台设备))
基本上这个表在设备上发生任何事情时都会得到记录。
我的问题是我应该如何处理一个非常快速增长的表格?
我应该放松一下,希望数据库在几个月内可以正常工作,当这个表有超过1000万行?然后在一年有1亿行?这是最简单的,但看起来像一个表大,会有可怕的表现。
我应该在一段时间(一个月,一周)之后存档较早的数据,然后让Web应用程序为最近的报告查询实时表格,并查询实时表格和存档表格以获取涵盖更大时间跨度的报告。
我应该有一个每小时和/或每日聚合表格来总结设备的各种状态吗?如果我这样做,触发聚合的最佳方法是什么?克龙?数据库触发器?另外我可能还需要归档。
必须有一个更优雅的解决方案来处理这种类型的数据。
随着时间的推移,有多少数据对您有价值?你需要所有的东西吗?监控数天和更长时间使用的空间 - 是否一致,以及可用空间耗尽多长时间? – 2010-07-31 03:50:45
旧数据不是非常有价值,但应用程序将需要每个设备的总数,以适用于设备使用期限内的每种状态组合。但就报告某个特定设备每小时甚至每天“多少次”应多于足够的粒度而言多少次。 “直到可用空间用完”是什么意思? – delux247 2010-07-31 04:12:01
数据库中的数据占用硬盘驱动器上的空间。随着越来越多的文件被写入,并且没有任何文件被存档到硬盘驱动器中 - 最终,您将会耗尽空间。 – 2010-07-31 05:44:57