0

緯度と経度のレコードを持つオブジェクトがあります。また、各オブジェクトには作成日があります。

ユーザーはどこからでもログインしてオブジェクトを見ることができます。オブジェクトの鮮度と現在のユーザーからの距離に基づいて計算される特別なインデックスでオブジェクトを並べ替えて表示する必要があります。

ニューヨークとジャージーにオブジェクトがあるとします。New-York からログインすると、New-Yorks のオブジェクトが一番上に表示され、次に Jersey のオブジェクトが表示されます。しかし、非常に古いニューヨークのオブジェクトは、新しいジャージーのオブジェクトよりも下にあるはずです。

関数 F = < 1 日のオブジェクトの鮮度 > + < 現在のユーザー ポイントからオブジェクトの場所までの距離 (km) >

データの保存には PostgreSql を使用しており、実際にはそのような関数で並べ替えるだけで、必要なものを取得できます。問題は、1,000 ~ 10,000 個のオブジェクトと 100 ~ 300 の場所に到達することを計画しており、アプリケーションが非常に迅速に結果を返さなければならないため、動作が非常に遅くなるのではないかと懸念していることです (アプリケーションで最も重要なことのようなものであるため)。

ユーザーはさまざまな場所からオブジェクトを追加します。

このようなクエリのパフォーマンスを向上させる方法はありますか?

4

2 に答える 2