sql >> データベース >  >> RDS >> PostgreSQL

パーティショニングテーブルを作成できないのはなぜですか

    「宣言型テーブルパーティショニング」、つまり独自の構文を持つDBMSのファーストクラスの機能としてのパーティショニングは、PostgreSQL10に追加

    以前のバージョンでは、「テーブル継承」を使用してもう少し努力することで同じ効果を達成できます。 これを手動で行う方法を説明するページがマニュアルにあります 、要約:

    1. すべてのパーティションが継承する「マスター」テーブルを作成します。
    2. それぞれがマスターテーブルから継承する複数の「子」テーブルを作成します。
    3. パーティションテーブルにテーブル制約を追加して、各パーティションで許可されるキー値を定義します。
    4. パーティションごとに、キー列にインデックスを作成し、その他の必要なインデックスを作成します。
    5. オプションで、マスターテーブルに挿入されたデータを適切なパーティションにリダイレクトするトリガーまたはルールを定義します。
    6. postgresql.confでconstraint_exclusion構成パラメーターが無効になっていないことを確認してください。そうである場合、クエリは希望どおりに最適化されません。

    これを簡単にするために、バージョン10にアップグレードできない場合は、pg_partman<などの拡張機能を使用できます。 / a> これにより、パーティションセットを設定および管理するための追加機能が提供されます。



    1. すべてのレコードをカウントし、表示用に特定の数のみを取得(LIMIT)する方法は?

    2. 合計クエリの最大値

    3. 存在する場合と存在しない場合があるグループのマッチング

    4. SQLにデータを追加するとき、Sphinxの自動更新はインデックスになりますか?