Mysql 我应该使用哪种技术来处理每30秒100万*100万次的计算

Mysql 我应该使用哪种技术来处理每30秒100万*100万次的计算,mysql,performance,hadoop,Mysql,Performance,Hadoop,我开发了一个GPS应用程序,所有设备(在路上移动)每30秒向服务器发送一次坐标。现在我必须计算这些设备之间的距离,因此如果任何设备位于另一个设备的范围内,那么这两个设备都会收到通知 我知道如何计算两个坐标之间的距离(感谢谷歌),但我不知道如何实现它;如果我们有100万台设备同时向服务器发送数据,那么服务器需要每30秒执行100万*(100万-1)次距离计算 请告诉我如何实施它。我是否需要使用Hadoop或MySQL数据库过程来完成这项工作?这里的计算不是问题,但处理和计算这么多数据是个问题。有一

我开发了一个GPS应用程序,所有设备(在路上移动)每30秒向服务器发送一次坐标。现在我必须计算这些设备之间的距离,因此如果任何设备位于另一个设备的范围内,那么这两个设备都会收到通知

我知道如何计算两个坐标之间的距离(感谢谷歌),但我不知道如何实现它;如果我们有100万台设备同时向服务器发送数据,那么服务器需要每30秒执行100万*(100万-1)次距离计算


请告诉我如何实施它。我是否需要使用Hadoop或MySQL数据库过程来完成这项工作?这里的计算不是问题,但处理和计算这么多数据是个问题。

有一种称为a的数据结构。保持四叉树中的数据点更新,您将有一个小得多的数据集来比较这些值

当客户端登录、移动并向您发送数据点时,您可以更改它们在四叉树中的位置。现在,四叉树将有一个所有数据点的2d地图,分为多个存储桶。每个铲斗包含4个其他铲斗,其中可能有点,也可能没有点。当您试图查找给定数据点X范围内的所有人时,请查看该点所在的桶中的所有点。然后你看看桶里的所有点,围绕着这个桶。(共有8个。南北西西北东北东南。)继续行驶,直到到铲斗的距离(以及铲斗中的所有点)大于最小范围


现在,其他所有人,其中大多数可能都离得很远,都不需要接受测试。你永远看不到他们的水桶。

嗨,你能帮我把这个应用到这个特殊的问题上吗。我不是在要求完整的解决方案。只是需要你的帮助来开始我的思考过程。关于这一点,这个答案在使用四叉树时是正确的,但是通过阅读k-D树和最近邻搜索,您将获得更多的洞察力。您需要四叉树,因为它很容易进行增量更新,但是查询谁接近可能有更多涉及k-D树的文档,但它可以是四叉树的适配器。