数日前、私は大量のデータを扱うことを可能にするためにパーティショニングを使い始めました。固定キーでパーティションのインデックスを作成する必要がありますか?
私は文書として示唆したようにマスターテーブルを作成し、マスターテーブルから継承したいくつかの子テーブルを作成し、各子テーブルの制約を追加して許容キー値を定義しました。制約だったような:
CHECK(SITE_ID =「google.com」)
が今ここに私の質問です:
私は以下の提案に出くわしたドキュメントを読むことながら:「パーティションごとに、作成キー列のインデックス "
パーティション全体のキーが同じであればどうすればよいですか? site_id列にインデックスを付けることの利点はありますか?
私が最初に読んだとき、すべての行に同じキーがあるとしたら(site_id = 'google_com')、インデックスにする必要はありません。ここ
は、SQL illustraingのDB構造及び典型的な使用である:
TABLEサイトを作成する( SITE_IDのVARCHAR(50)PRIMARY KEY、 DESCRテキスト )。
- REQマスターテーブル
が表REQ( SITE_IDのVARCHAR(50)、 タイムスタンプタイムスタンプ )を作成しています。
- 今のサイト(SITE_ID)VALUES( 'google_com')INTO
INSERT、いくつかの子テーブルを作成してみましょう。 CREATE TABLE req_google_com( CHECK(site_id = 'google_com') )インヘリット(req);
INSERT INTOサイト(site_id)VALUES( 'twitter_com'); CREATE TABLE req_twitter_com( CHECK(site_id = 'twitter_com') )インヘリット(req);
- req_google_com VALUES( 'google_com'、now())、( 'google_com'、now());
DB構造を表示するために元の投稿を編集しました。私はsite_id列を取り除くことはできません。 site_idの値は、特定のフラグメントでは常に同じですが、別のものでは異なり、WHERE句では透過的な方法でデータにアクセスします(master reqテーブルから選択します)。 – Prikrutil
私はそれを "各パーティションごとに、site_idカラムにインデックスを作成する"と読みました。申し訳ありませんが、私は "グローバルプライマリキー"と "パーティションキー"の違いを理解していない – Prikrutil