性能套接字nodejs + mysql

时间:2016-10-12 12:32:35

标签: mysql node.js performance

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

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

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

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

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

1 个答案:

答案 0 :(得分:0)

每秒2.5次插入只是适度的速度。 6M记录/月 - 没问题。

你如何计算知识管理?计算先前GPS读数与当前的距离?或者可能回到开始?请记住,GPS读数可能有点不稳定;当每12秒绘制一次时,直线行驶的汽车可能看起来很醉。同时,我假设你需要某种索引(传感器,序列)来跟踪前一个(或第一个)读数来做距离。

但是,你会怎么做距离?是否在某处继续读取显示?也就是说,你是否每分钟更新一些非MySQL的东西150次?如果是这样,你有一个应该接收新的GPS读数的应用程序,将其存储到MySQL,读取起点(或记住它),计算公里数并更新图表。也就是说,MySQL不是重点,但你的应用程序是。

至于lat / lng的表示,我引用android support library sources here以确定FLOAT可能是最佳的。

公里几乎肯定会存储为FLOAT。这给你大约7个有效数字的精度。您应该决定是否代表"米"或者"千米"。 (精度是一样的。)