Postgis のようなデータベースで空間データを扱う場合、SELECT ごとに 2 つのポリゴンの交点またはポリゴンの面積を計算するのは良い方法ですか? それとも、INSERT、UPDATE、または DELETE ステートメントで計算を行い、結果をテーブルの列に保存する方がパフォーマンスの問題に適していますか? 大規模な空間データベースでのアプローチはどうですか?
答えてくれてありがとう。
Postgis のようなデータベースで空間データを扱う場合、SELECT ごとに 2 つのポリゴンの交点またはポリゴンの面積を計算するのは良い方法ですか? それとも、INSERT、UPDATE、または DELETE ステートメントで計算を行い、結果をテーブルの列に保存する方がパフォーマンスの問題に適していますか? 大規模な空間データベースでのアプローチはどうですか?
答えてくれてありがとう。
質問が抽象的すぎる。
もちろん、交差領域 ( ) を使用する場合は、ジオメトリST_Intersection
の結果を保存する必要があります。ST_Intersection
しかし実際には、入り口の引数は動的パラメーターに依存するため、オンフライで交差を計算する必要があることがよくあります (たとえば、気温が 30 ℃ 未満の領域と 20 ミリ秒を超える風の領域の交差)。ちなみに、 VIEW を使用して、そのようにクエリを簡素化できます。
もちろん、テーブルに幾何学的な列引数が両方含まれている場合、またはそれらのいずれかが定数である場合は、交差を格納することをお勧めします。特に、この列の空間インデックスを作成できます。
一定のルールはありません。データベースのサイズ、使用の種類などの実践条件に基づいてガイドする必要があります。たとえば、落雷のポイントに対して生成された楕円 (信念ゾーン) を保存しますが、電力線との交差 (ブール値) の事実は保存しません。インターセショニングはパラメータ化できます。