0

地理空間ポイントを聞く場所を持つ限られた数のレコードを取得する必要があるユースケースがあります。似たようなもの:

SELECT * FROM table WHERE location is near (x, y) LIMIT 200

PostGISを使いたいです。しかし、それがこの種のクエリをサポートしているかどうかはわかりません。バウンディングボックス内のレコードを取得したくないので、指定したポイントまでの距離に従って並べ替えられるレコードの数を制限します。PostGISのドキュメントでそれに関する情報を見つけられませんでした。

PostGISがそれをサポートしている場合、それはスケーリングしますか?これは私のアプリで最も頻繁に使用されるクエリです。そして、レコードの数は非常に多いです。

MongoDBに$nearクエリがあることは知っています。スケーリングしますか?

4

2 に答える 2

1

postgisと話すことはできませんが、MongoDBの$ near演算子は、適切な地理空間インデックスが設定された状態で適切にスケーリングするように設計されており、クエリの正確性と速度が徹底的にテストされています。さらに、サーバーとネットワークの両方の負荷を軽減するカーソル制限オプションを使用すると、必要な結果の数を簡単に指定できます。

于 2013-03-25T21:02:15.140 に答える
0

PostGIS 2は、KNN GiSTインデックス距離演算子(<->セントロイド演算子など)を導入しました。これは、2011年のブログ投稿でうまく説明されています。この距離演算子は、速度を重視して設計されています。

SELECT * FROM table WHERE location <-> ST_MakePoint(x, y) LIMIT 200;

利用可能な他の多くの距離フィルターと演算子があります。

于 2013-03-26T01:59:57.680 に答える