ひじりんのひつまむしブログ

現役システムエンジニアのゲームやら映画やら技術やら・・

PostgreSQL9.4におけるデータ分散

PostgreSQLには、データを分散させる機能があり

その中の「継承」について記載する。

9.4時点なので、現行13では 改善されている部分もあると思う

 

継承

テーブルを分割し、部分的な閲覧や総括的な閲覧などを可能にする

 

  A

  △

  ┃

┏━┻━┓

B   C

 

Aから継承したBを作成することで、Aのカラムや型 not null

などを引き継ぐ

 

create table B (

check(・・・)

) inherits A;

メリット

パーティションを分けて、並列化できれば、分散時のパフォーマンス改善も可能

引き継がないもの

  • 主キー
  • 外部キー
  • インデックス
  • 一意

よって、Aテーブルに主キーを設定しても

BとCに同じキーを挿入できてしまう

 

検証で分かった注意事項

  1. 上記の主キー、外部キー、ユニークがないため整合性がとれない
  2. 継承テーブルの条件となる項目は更新できない
  3. 継承元テーブルにデータ格納できるが、継承先を参照できない

まとめ

制約事項が多すぎるため、プログラムで補うのと

メリットの恩恵をもらうのの、天秤にすると、何ともいえないところ。

9.4の分散は実用するには、限定的な感じがする

ロギング関連のレコードで、日付単位で分割するなど

このような利用では、恩恵があるかもしれない・・

 

PVアクセスランキング にほんブログ村