首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在mysql数据库中存储跟踪应用程序的GPS数据的最佳实践

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

Stack Overflow用户
提问于 2012-11-02 14:37:21
回答 1查看 6.8K关注 0票数 6

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

我们想要的也是每5秒保存一次的数据,这样我们以后就可以利用这些数据来绘制训练的图表。

我们应该如何将这么多的数据存储在数据库中?一个单一的锻炼可以包含720行,如果有人跑了一个小时。可能是一行中的序列化/ in压缩数据数组。不过,我知道这是个糟糕的做法。

一个从一个/多个到多个模型的关系会被撤销吗?我知道MySQL可以轻松地处理大量的数据,但是我们谈论的是每周两次的720 *7000个用户=每周超过1000万行的锻炼。(当然,我们只能每10秒存储一次数据,将数字减半。)一排排,或每20秒等.但随着时间的推移,仍将是大量的数据,图形的准确性会下降)

你会怎么做?预先感谢您的投入!

EN

回答 1

Stack Overflow用户

发布于 2012-11-02 15:46:21

只是一些想法:

  1. 量化你的lat/lon数据我相信,由于技术原因,数据很可能已经被量化了,所以如果你能检测到量化,你可以使用它。这里的想法是把双数转换成合理的整数。在最坏的情况下,你可以量化到精确的双数字,这意味着使用64位整数,但我非常怀疑你的数据甚至接近该分辨率。也许一个简单的网格只有一米的边长对你来说就足够了?
  2. 计算差异。大多数数字在绝对值方面将相当大,但也非常接近(除非您的成员运行在世界…的一半左右)。。因此,这将导致相当少的数目。此外,只要人们以恒定的速度跑向一个恒定的方向,你就会经常看到同样的差别。步骤1中的空间网格越粗,这里就越有可能得到完全相同的差异。
  3. 为这些差异计算一个Huffman码。您可以尝试分别对lat和长运动进行编码,或者计算单个代码,在其叶子上使用2d位移向量。两种方法都试一试,并比较结果。
  4. 将结果存储在BLOB中,连同字典一起解码您的Huffman代码,以及初始位置,这样您就可以将数据返回到绝对坐标。

结果应该是针对每个数据集的一组相当小的数据,您可以将其作为一个整体来检索和解压缩。从数据库中检索单个部件是不可能的,但听起来您不需要这样做。

Huffman在gzip上编码的好处是不必人为地引入中间字节流。直接编码您所遇到的实际差异,以及它们各自的属性,应该会更好地工作。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13197381

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档