在最小时间间隔内从数据库中过滤记录以制作图表

时间:2013-10-01 15:17:23

标签: mysql sql database filter nosql

我们有一个MySQL数据库表,其中包含我们想要作为图表显示的统计数据,时间戳用作x轴。我们希望能够在1天和2年的分辨率之间放大和缩小图表。

在缩小状态下,我们不希望从表中获取所有数据,因为这意味着要通过服务器发送大量数据,并且无论如何图表分辨率都足够好,而且数据更少。

在MySQL中,您可以进行仅选择例如每个第十个值和类似值,在这种情况下可以使用。但是,存储在数据库中的值之间的间隔不一致,两个值可以相隔10分钟,最多6个小时,可能更多。

所以问题在于,如果我们跳过一些洗脱的十分之一值,很难计算一个好的步进间隔,这可能适用于中间的10分钟系列,但是对于6小时的间隔,我们也会扔掉很多,图表的分辨率太低,无法提供舒适度。

我的印象是,MySQL无法拥有一个取决于时间的步进间隔,因此它会跳过例如在上午五分钟附近包括行。

一种解决方案可能是将6小时设置为图表的最小分辨率要求,因此除非图表中的距离足够小,否则我们不会丢弃值。我担心如果间隔实际上较小,这可能会导致过多的数据被读取并通过系统发送。

另一个解决方案是在Java代码中获得更多智能,从低分辨率向下迭代地读取数据集,直到数据足够好。

解决方案的任何想法,使我们能够在一次读取中获得最佳分辨率,而不会从数据库中读取太大的结果集,同时不会对数据库施加太多负载?我对于安装一个中间NoSQL组件来存储值,我有很多想法,可能会按照我想要的方式支持时间间隔 - 不确定这实际上是否是组织中的一个选项。

0 个答案:

没有答案