mysql - 如何在数据库中存储 8000 亿个 GPS 标记

标签 mysql database database-design gps nosql

我需要将用户记录的 GPS 轨迹存储到数据库中。轨道将由每 5 米移动一个标记组成,以便在 map 上画一条线。我估计 200 公里的轨道意味着 40,000 个 lnlt 标记。我估计至少有 50,000 个用户,每个用户有 20 条 200 公里的轨道。这意味着至少有 400 亿个 lnlt 标记。

这也需要扩展,因此对于 100 万用户,我需要 8000 亿个 GPS 标记的容量。

由于每组 40,000 个标记都属于一个轨迹,我们说的是 1 - 2000 万条记录/GPS 轨迹集。

要求: 用户将请求在移动应用程序中的 Google map 上查看这些轨道。

关系: 我目前有 2 张 table 。表一有:[trackid]、[userid]、[comment]、[distance]、[time]、[top speed]。

表 2 有 [trackid] [longitude] [latitude],这是存储所有 GPS 标记的地方。在保持读取性能的同时存储如此大量的 GPS 数据的有效方法是什么?

新信息:

将 GPS 数据存储在 KML 文件中以便在 Google map 上将其显示为轨迹是一种节省数据库空间的好解决方案。将 KML 压缩成 KMZ(基本上是一个带 KMZ 扩展名的压缩 KML)可以进一步大大减小文件大小。 KMZ 加载速度比 GPX 快得多,并且可以作为 KML 图层与 Google Maps API 集成。 See this information from Google为进一步协助。这似乎是迄今为止满足预期要求的最佳解决方案。

最佳答案

一如既往,特定数据库的选择取决于您希望如何存储信息以及如何使用它。因此,在不知道项目的确切要求以及数据关系的情况下,最好的办法是阅读该主题,以确定最适合的特定产品或存储模型你。

一个好的起点是阅读比较数据库的性能和使用的博客(见附件):

http://kkovacs.eu/cassandra-vs-mongodb-vs-couchdb-vs-redis

关于mysql - 如何在数据库中存储 8000 亿个 GPS 标记,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12825810/

相关文章:

python - 如何在sql中存储树结构?

mysql 查询内连接条件 where id IN

mysql - Concrete5 数据库索引在 db.xml 中指定,但不是 "take"。我该如何让它发挥作用?

java - 使用 Spring 避免数据库轮询的最佳方法

php - MongoDB - 存储和读取数据的最佳方式

mysql - 时间相关字段的数据库设计

java - 线程中的异常 "main"java.sql.SQLException : Unable to open file

mysql - 提高查询性能以仅更新 1 列而不是 3 列

python - 缓存/重用数据库连接以供以后查看使用

sql-server - 如何设置新的 SQL Server 数据库以允许将来可能的复制?