gpt4 book ai didi

mysql - 性能套接字 nodejs + mysql

转载 作者:行者123 更新时间:2023-11-29 03:23:36 27 4
gpt4 key购买 nike

我正在开发一个由 node.js 中的服务器组成的应用程序,基本上是一个监听传入连接的套接字。

到达我的服务器的数据来自 GPS 跟踪器(大约 30 个),每个跟踪器每分钟发送 5 条记录,所以一分钟内 a 将有 5*30 = 150记录,一个小时后我会有150*60 = 9000一天的记录9000*24 =216000一个月后216000*30 = 6.480.000万条记录。

除了纬度和经度,我还必须在数据库(MySql)中存储每个跟踪器的累积距离。每个跟踪器都发送到服务器位置,每次接收数据时我都必须计算 2 点之间的公里数(当数据库有数百万条记录时减少对数据库的工作)。

所以问题是,求和并存储公里数的正确方法是什么?

我认为对整个数据库求和不是解决方案,因为在数百万条记录中会非常慢。也许,每次我必须存储一个新点(每分钟 150 次)时,我可以在数据库中选择最后一条记录,然后将累计公里数与新的距离计算相加吗?

最佳答案

每秒 2.5 次插入只是一个适中的速率。 600 万条记录/月——没问题。

您如何计算 KM?计算之前 GPS 读数与当前读数的距离?或者回到起点?请记住,GPS 读数可能有点不稳定;每 12 秒绘制一次直线行驶的汽车可能看起来喝醉了。同时,我假设您需要某种关于(传感器、序列)的索引来跟踪之前(或第一次)读数以计算距离。

但是,您将如何处理距离?它是否不断被读出以在某处展示?也就是说,您是否每分钟更新一些非 MySQL 东西 150 次?如果是这样,您有一个应用程序应该接收新的 GPS 读数,将其存储到 MySQL 中,读取起点(或记住起点),计算公里数并更新图表。也就是说,MySQL 不是这里的重点,而是您的应用程序。

关于 lat/lng 的表示,我引用了 my cheat sheet看看 FLOAT 可能是最优的。

公里几乎肯定应该存储为 FLOAT。这为您提供了大约 7 位有效数字的精度。您应该决定该值是代表“米”还是“公里”。 (精度相同。)

关于mysql - 性能套接字 nodejs + mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39998722/

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