大量の気象モデルデータをPostgreSQLデータベースに入れています。マシンには8つのコアと16 GBのRAMがあります。 PostGIS 2.1でPostgreSQL 9.3を実行しています。各テーブルには、さまざまな気象データ(気温、露点、風など)があります。各テーブルには6〜7列があります。緯度、経度、ポイントジオメトリ、標高、モデルが関連する日時、および対象となる1〜2のデータ値です。データは主に、時間と高度によって境界ボックスを照会されます。テーブルごとに約145,757,360行になります(現在より古いデータは関係がなくなったため、削除されます)。テーブルのサイズは、おおよそ、インデックスなしで約10 GBと推定されます。 (これは、52バイトのデータと1行あたり23バイトのオーバーヘッドです)。新しいモデルデータが利用可能になると、データは定期的に更新/挿入されます。注:新しいデータには、テーブルの既存の値の上書きが含まれます。
だから私はこれらの2つの計画を見ています:
さらに、
データを配信する場合、選択はクラスター化インデックスよりも高速になりますか?複数のリクエストが一度に行われる場合、答えは変わりますか?
ありがとうございました。必要なデータをすべて入れてほしい。知らない場合はお知らせください。追加します。
すべてを考慮すると、オプション2を使用します。日付は均等に選択されますが、特定のクエリでは、1つまたは2つの日付パーティションのみが関係していると推測します。これは、理想的には、地理位置情報でクラスター化したり、日付でパーティション分割したりできないのは残念です。境界ボックスが十分に小さい場合、高度はいずれにせよ地理位置情報と相関する傾向があります。
利用可能な選択肢を考えると、よりクリーンなデータ操作と毎日のバキュームを回避することは良いことです。
オプション1を使用すると、selects mayの配信が速くなりますが、おそらくウォッシュになるでしょう。オプション1では、同じ日付と標高のレコードが1つの大きなクラスター化インデックス内で互いに近くに配置されます。オプション2では、同じ日付と標高を持つレコードが、多くの小さなクラスター化インデックスで互いに近くに配置されます。