PostgreSQL9.4におけるデータ分散
PostgreSQLには、データを分散させる機能があり
その中の「継承」について記載する。
9.4時点なので、現行13では 改善されている部分もあると思う
継承
テーブルを分割し、部分的な閲覧や総括的な閲覧などを可能にする
A
△
┃
┏━┻━┓
B C
Aから継承したBを作成することで、Aのカラムや型 not null
などを引き継ぐ
create table B (
check(・・・)
) inherits A;
メリット
パーティションを分けて、並列化できれば、分散時のパフォーマンス改善も可能
引き継がないもの
- 主キー
- 外部キー
- インデックス
- 一意
よって、Aテーブルに主キーを設定しても
BとCに同じキーを挿入できてしまう
検証で分かった注意事項
- 上記の主キー、外部キー、ユニークがないため整合性がとれない
- 継承テーブルの条件となる項目は更新できない
- 継承元テーブルにデータ格納できるが、継承先を参照できない
まとめ
制約事項が多すぎるため、プログラムで補うのと
メリットの恩恵をもらうのの、天秤にすると、何ともいえないところ。
9.4の分散は実用するには、限定的な感じがする
ロギング関連のレコードで、日付単位で分割するなど
このような利用では、恩恵があるかもしれない・・