gpt4 book ai didi

database - 如何优化大型数据库请求

转载 作者:搜寻专家 更新时间:2023-10-30 23:43:31 24 4
gpt4 key购买 nike

我正在使用一个包含船舶信息(测量值)的数据库。船只发送有关其位置、燃料使用等的更新。因此数据库中的条目如下所示

| measurement_id | ship_id | timestamp     | position | fuel_use |
| key | f_key | dd-mm-yy hh:ss| lat-lon | in l/km |

这些条目中的一个新条目每秒都会为每艘船添加一个,因此数据库中的条目数量会很快变大。

我正在开发的应用程序需要的不是一秒钟的信息,而是 1 分钟、1 天甚至 1 年的累积数据。例如,一天的总燃料使用量、一年的行驶距离或一个月内每天的平均燃料使用量。

要获取并根据原始数据进行计算是不可行的,您必须从服务器获取 3150 万条记录才能计算出一年的行驶距离。

我认为明智的做法是将条目合并为一个更大的条目。例如,获取 60 次测量并将它们合并到单独表格中的 1 分钟测量条目中。通过平均燃料使用,并将两个条目之间的行驶距离相加。分钟条目将如下所示。

| min_measurement_id | ship_id | timestamp  | position    | distance_traveled     | fuel_use     |
| new key |same ship| dd-mm-yy hh| avg lat-lon | sum distance_traveled | avg fuel_use |

然后可以重复此过程以处理小时、天、月、年。这样一周的查询可以通过仅请求 7 个查询来完成,或者如果我想要每小时详细信息 168 个条目。对我来说,这些数字看起来更有用。

可以通过每 10 分钟查询一次原始数据库来填充新表,然后该数据填充分钟表,进而更新小时表等。

然而,这似乎是对几乎相同数据的大量管理和复制,并且不断进行相同的操作。

所以我感兴趣的是是否有某种方法可以构建这些数据。它可以分层排序(毕竟秒、天、分钟非常分层)还是有其他方法可以优化它?

这是我第一次使用这么大的数据库,所以我也不知道该在 Internet 上寻找什么。

最佳答案

聚合在数据仓库中很常见,因此您对数据进行分组的方法很好。是的,您正在复制一些数据,但您将获得速度优势。

关于database - 如何优化大型数据库请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32105094/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com