1

特定の半径にあるポイントを見つける必要があります。1 つ目は独自のアルゴリズムを作成する (または既存のライブラリを使用する) 2 つ目は、postgresql earth_box ユーティリティを使用することで、ストアド プロシージャを使用して db から直接選択できます。Web アプリケーションのコンテキストにおける両方の長所と短所は何ですか?

4

1 に答える 1

1

次の理由から、postgres で earth_box プロシージャを使用する方がよいと思います。

  • データベースには、それを操作するためのデータと手順が既に含まれています
  • 適切にインデックスが作成されたテーブルが与えられたデータベース サーバーは、独自の空間データに対して空間クエリを非常に効率的に実行する必要があります。
  • サーバーを使用すると、空間情報をクエリする必要がなく、処理している場所に転送し、ツリー構造やその他のオーバーヘッドを作成する必要がありません (最初の箇条書きに関連しています)。
  • すでに存在し、おそらく徹底的にテストされ精査されたコードを使用している
  • レポートなどのより多くのアプリケーションから、他のサーバー側 SQL のコードを再利用できます。

最初にアースボックスのアプローチを試して、アースボックスがパフォーマンス的に絶対に悪い場合にのみカスタムソリューションを使用することをお勧めします.

以下は、ブログ投稿からのより簡潔なメタ推論です。

[...] earthbox 関数を使用すると、単純な比較を実行して、特定の半径内のすべてのレコードを見つけることができます。これは、ポイント間の大圏距離を返す関数によって行われます。より詳細な説明は http://en.wikipedia.org/wiki/Greatcircleにあります。

(メタ推論とは、earthbox の使用が単純であるため、簡単に使用できることを意味します。)

于 2014-03-13T05:23:58.937 に答える