私は地理位置情報アプリに取り組んでいます。このアプリは、適切にインデックス化された MongoDB に約 500K のレコードを保持します。各行には、独自の緯度と経度の記録値があります。したがって、クライアントは、これらの 500k 行から 200 の最も近いポイントを回復する必要があります。パフォーマンスが気になります。最初は、すべてのレコード (lat/lng 情報) をキャッシュ マネージャーまたはインメモリ データベースに保持することを考えていました。その後、特定のポイント (lat/lng) をキャッシュ内の値と比較できます。この瞬間、私の疑問が生じます。
これらすべてのレコードをキャッシュ マネージャーの ArrayList に格納し、距離を計算するために、レコードのジオロケーションを ArrayList のジオロケーションと比較するとよいでしょうか?
そのアプローチでは、MongoDB で膨大な数のクエリが発生するのを防ぎます。一方、ArrayList に約 500K のレコード (地理位置情報) を保持し、リストをフェッチして最も近い 200 件を取得することで、間違っている可能性があります。間違っていなければ、少なくともパフォーマンスの低下だと思います。
どうすればその問題に対処できますか?
前もって感謝します。