【问题标题】:Table schema for storing large number of location coordinates in database用于在数据库中存储大量位置坐标的表模式
【发布时间】:2015-09-17 06:52:22
【问题描述】:

我需要存储大量位置坐标及其时间戳。以下是当前表架构的样子:

User_ID, Location_Coordinate, Timestamp

每个用户都被连续跟踪,并且会为每个用户生成大量位置坐标。有多个用户。有效存储此类数据的正确方法是什么?

我需要检索每个用户过去 24 小时的数据。

【问题讨论】:

  • 24 小时后您还需要数据吗?如果是这样,您需要如何访问超过 24 小时的数据?有多少用户?

标签: postgresql schema postgis large-data


【解决方案1】:

最简单的方法是将其全部存储在一个表中,并使用 PostGIS geometry 列作为位置。什么是“高效”完全取决于您的应用程序。有几点需要考虑:

  • 如果要存储每个用户的每个位置,请使用常规表。是否应该使用索引取决于插入的数量(输入的新位置)以及检索数据的方式。非常频繁的插入意味着索引必须经常更新;这是性能损失。
  • 如果您获得的位置多于应用程序所需的位置(例如,从 (GPS) 设备自动推送当前位置),那么您可能需要考虑使用不带索引的未记录表(因此插入速度非常快) 然后定期轮询该表以获取新记录,对其进行处理(即减少位置数量以仅存储相关的位置),并将处理后的数据永久存储在具有适当索引的另一个表中。 PostGIS 中有许多处理功能可用于此目的。保持未记录的表较小(定期轮询并删除处理过的数据),您就不会错过索引。然后,您将查询过去 24 小时的后一个表,并将未记录的表仅用于新收到的位置。

否则,您提供的信息有限,无法提供太多建议。用更多细节编辑您的问题,您将获得更详细的答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-23
    • 2013-07-31
    • 1970-01-01
    • 1970-01-01
    • 2011-07-25
    相关资源
    最近更新 更多