Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/57.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在mysql数据库中存储跟踪应用程序的GPS数据的最佳实践_Mysql_Database_Mapping_Datamodel - Fatal编程技术网

在mysql数据库中存储跟踪应用程序的GPS数据的最佳实践

在mysql数据库中存储跟踪应用程序的GPS数据的最佳实践,mysql,database,mapping,datamodel,Mysql,Database,Mapping,Datamodel,我有一个关于GPS跟踪应用程序的数据模型问题。当有人使用我们的应用程序时,它将每5秒节省纬度、经度、当前速度、时间戳和燃烧的热量。训练完成后,训练的平均速度、总时间/距离和消耗的卡路里将存储在数据库中。到目前为止还不错 我们想要的是还存储每5秒保存一次的数据,以便稍后我们可以利用这些数据绘制训练的图形/图表 我们应该如何在数据库中存储这么多的数据?如果有人跑步一小时,一次训练可以包含720行。可能是单行中的序列化/压缩数据数组。我知道这是一种坏习惯 一个关系型的一对多模型将被撤销?我知道MySQ

我有一个关于GPS跟踪应用程序的数据模型问题。当有人使用我们的应用程序时,它将每5秒节省纬度、经度、当前速度、时间戳和燃烧的热量。训练完成后,训练的平均速度、总时间/距离和消耗的卡路里将存储在数据库中。到目前为止还不错

我们想要的是还存储每5秒保存一次的数据,以便稍后我们可以利用这些数据绘制训练的图形/图表

我们应该如何在数据库中存储这么多的数据?如果有人跑步一小时,一次训练可以包含720行。可能是单行中的序列化/压缩数据数组。我知道这是一种坏习惯

一个关系型的一对多模型将被撤销?我知道MySQL可以轻松处理大量数据,但我们讨论的是720*训练 每周两次*7000用户=每周超过1000万行。 (当然,我们只能每10秒存储一次数据,以将行数减半,或每20秒存储一次,等等……但随着时间的推移,数据量仍然会很大+图形的准确性会降低)

你会怎么做? 提前感谢您的输入

只是一些想法:

  • 量化你的纬度/经度数据。我相信由于技术原因,数据很可能已经被量化了,所以如果你能检测到量化,你可以使用它。这里的想法是将双数转换成合理的整数。在最坏的情况下,您可以量化到双倍数字提供的精度,这意味着使用64位整数,但我非常怀疑您的数据是否接近该分辨率。也许一个边长约一米的简单网格就足够了
  • 计算差异。大多数数字在绝对值方面都相当大,但也非常接近(除非你的会员遍布世界的一半…)。因此,这将导致相当小的数字。此外,只要人们以恒定的速度跑向恒定的方向,你就会经常看到相同的差异。步骤1中的空间网格越粗糙,就越有可能得到完全相同的差异
  • 为这些差异计算a。您可以尝试分别对横向运动和纵向运动进行编码,或者使用二维位移向量计算单个代码。尝试两种方法并比较结果
  • 将结果存储在BLOB中,连同字典一起解码哈夫曼代码和初始位置,以便将数据返回到绝对坐标
  • 结果应该是每个数据集都有一个相当小的数据集,您可以将其作为一个整体进行检索和解压缩。从数据库中检索单个部件是不可能的,但听起来您不需要这样做


    通过gzip进行哈夫曼编码的好处是,您不必人为地引入中间字节流。直接将您遇到的实际差异及其各自的属性进行编码应该会更好。

    类似的问题应该在Programmers.se上明确提出,因为这些问题过于广泛,而且过于基于观点,无法站得住脚。实际上,任何以“最佳实践”开头的问题都可能被认为是本网站的主题之外的问题。看一看。另外,这是一个关于你自己问题的有趣观点,在这里被问到。@trejder当提到其他网站时,通常值得指出@gnat当然,你是对的。对我来说,“在那里问”是如此明显,而且很容易缩小到“在那里问,在这里删除”,以至于我经常忘记这一点。谢谢你指出这一点。