我正在开发一个地理定位应用程序。这个应用程序在正确索引的 MongoDB 中保存了大约 500K 记录。每行都有自己的纬度和经度记录值。因此,客户端必须从这 500k 行中恢复 200 个最近的点。我担心性能。起初,我想将所有记录(纬度/经度信息)保存在缓存管理器或内存数据库中。之后,可以将给定的点(纬度/经度)与缓存中的那些值进行比较。这一刻,我的疑惑产生了。
将所有这些记录存储在缓存管理器中的 ArrayList 中,然后将记录的地理位置与 ArrayList 中的地理位置进行比较以计算距离会很好吗?
使用这种方法,我可以防止 MongoDB 中的大量查询,另一方面,通过在 ArrayList 中保留大约 500K 记录(地理位置)然后获取该列表以检索最近的 200 个,这可能是错误的。如果没有错,至少我认为这是性能损失。
我该如何处理这个问题?
提前致谢。