質問

PostgreSQLは、さまざまな幾何型をサポートしています。多数の幾何学的演算子および GiSTインデックスは、データの空間インデックスを提供しているようです。

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

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

アプリケーションが地理座標(ポイント、エリア、ポリゴン)を保存し、クエリ(ポリゴン内のポイント、ポリゴンの交差点など)を効率的に実行する必要がある場合、PostGISが必要ですか(おそらく)より便利なものを使用できますかよりシンプルな組み込みデータ型/構文?

役に立ちましたか?

解決

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

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

PostGISは、ジオメトリデータを「ジオメトリ」タイプの列に格納します。これには、多かれ少なかれ任意のデータ(ポイント、円、ポリゴン、持ち物)を保存できます。インデックス作成は高速で非常に洗練されています。それ以外の場合は合理的な方法でインデックスを作成できない複雑な形状の境界ボックスを使用して、損失の多いインデックス作成などを行うことができます。さまざまな空間参照システムがサポートされ、クエリの結果が自動的に変換されます。 PostGISは、他のシステムとデータを共有するのに役立つ業界標準のOpenGIS形式もサポートしています。

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

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top