33

PostgreSQL は、多くの幾何学的演算子と、データの空間インデックスを提供するように見えるGiST インデックスと共に、すぐに使用できるさまざまな幾何学的タイプをサポートしています。

そして、PG の拡張であるPostGISもあります。

PG と PostGIS の組み込みの空間サポートの違いは何ですか?

私のアプリケーションが地理座標 (ポイント、エリア、ポリゴン) を保存し、効率的にクエリ (ポイントインポリゴン、ポリゴン交差など) を実行する必要がある場合、PostGIS が必要ですか、それとも (ほぼ間違いなく) より便利でシンプルなビルドを使用できますか? -データ型/構文で?

4

1 に答える 1

33

最初に、GiST インデックスについて明確にしたいと思います。GiST は実際には新しいデータ型のインデックスを作成するためのフレームワークであり、特定のインデックス作成スキーム自体ではありません。このフレームワークは、たまたま Postgres に付属する幾何学的な型に使用されますが、標準テキスト列のトライグラム マッチング テキスト類似性インデックスにも使用され、もちろん多くの外部パッケージのインデックス スキームで使用されます。番号PostGIS。

標準の幾何学的データ型が機能するか、PostGIS が必要かは、アプリケーションに完全に依存します。

PostGIS は、ジオメトリ データを「geometry」タイプの列に格納します。これには、多かれ少なかれ任意のデータ (ポイント、円、ポリゴン、what-have-you) を格納できます。インデックス作成は高速で非常に洗練されています。他の方法では適切な方法ではインデックス付けできない複雑な形状に対して、バウンディング ボックスを使用して非可逆インデックス付けなどを行うことができます。さまざまな空間参照系がサポートされており、クエリの結果が自動的に変換されます。PostGIS は業界標準の OpenGIS 形式も​​サポートしており、他のシステムとのデータ共有に役立ちます。

対照的に、内部の幾何学的タイプとそのインデックスのセットは、それほど洗練されていません。実際の「一般的な」ジオメトリ タイプはありません。代わりに、列のタイプをポイント、ライン、サークル、ポリゴン、または what-have-you にすることを選択する必要があります。組み合わせの場合、おそらく複数の列を使用する必要があります。索引付けはあまり良くありません。インデックスを作成できる形状の種類はそれほど多くなく (ただし、別の列を使用してバウンディング ボックスのサポートを追加し、バウンディング ボックスを手動で生成することもできます)、状況によってはインデックスがおそらくそれほど高速ではありません。一方、内部の幾何学的タイプがニーズを満たす場合は、Postgres がインストールされているが PostGIS がインストールされていない他のシステムにアプリケーションをより簡単に移植できるという利点が得られます。

私のアドバイスは、内部の幾何学的タイプをいじってみて、それがどれだけうまく機能するかを確認することです。問題が発生し始めた場合は、PostGIS を試してください。

于 2009-06-21T05:27:01.263 に答える