2011年5月26日木曜日

パーティショニングについて(postgres)

●導入について
 ・基本的にパーティショニングをした場合
  キー項目が検索項目に入っていない時速度が下がる。
  入金実績、オーダー明細とリスト明細共に常に入る検索条件の指定が難しい

 ・オーダーは条件文によって遅くなる場合がある。
  (group by と max を組みあせたサブクエリーを使った場合に
   サブクエリー単体と該当条件文を外したクエリーは早いが
   組み合わせると遅くなる。またパーティショニング前はそこそこ早い。)

●パーティショニングの調査について
 ・ルールによる自動振り分けは遅いと判明
  →インサートのトリガーによる振り分けの実装(トリガーのインサートが主流)
 ・パーティションテーブルを自動的に作成する。
  →トリガーで自動作成を見るのは重くなる原因となる。
  →テーブル自動作成関数の作成
  →残タスク cronによる自動実行を作成する。

 まとめ
  ・継承したテーブルを作成する。
  ・トリガー関数を作成し、トリガーを設定する。
  ・必要があれば、テーブル自動作成関数を作成し、クーロンで実効。
  ・データ移行をする(バックアップテーブルからインサートをかける。)

0 件のコメント:

コメントを投稿