2019年 2月 の投稿一覧

PostgreSQLドキュメントの歩き方 – アプリケーション開発編

本連載では巨大な PostgreSQLドキュメントの読むべきポイントを紹介していきます。
デプロイメント編運用管理編に引き続きまして、今回はアプリケーション開発編です。

アプリケーション開発編では、データベースサーバは既に構築されているものとして、その上でテーブル定義を記述したり、そこで動作させる SQL やユーザ定義関数(ストアドプロシージャ)を開発するために見るべきドキュメントを示します。

なお、PostgreSQLドキュメントの在り処や基本的な見方についてはデプロイメント編の冒頭に記載しています。また、これまで同様、PostgreSQL 10.x バージョンを主対象に書いています。

続きを読む

pg_repack (オンラインテーブル再編成ツール)

pg_repack は PostgreSQL のテーブルをオンラインで再編成できるツールです。本記事では pg_repackについて紹介します。

良く知られている通り、PostgreSQL は追記型アーキテクチャを採用しています。UPDATE や DELETE をしても旧データを格納した行はしばらく物理ファイル上に残り、これを VACUUM コマンドや自動 VACUUM で整理して、その領域を再利用可能にする仕組みとなっています。何らかの理由でこれらの手動・自動の VACUUM 処理が実行されなかった場合には、データ格納に使われない不要領域が増加し、性能劣化の原因となります。そのような場合には、CLUSTER コマンドや VACUUM FULL コマンドを使って、テーブルの再編成をするのですが、これらのコマンドは強いロックを取得するため、サービス中の適用が難しいという課題がありました。

pg_repack は CLUSTER または VACUUM FULL と同様に不要領域の削除や行の並び替えることができますが、処理中に強いロックをごく短時間しか取得しないため、サービス中にも実施が可能となります。

続きを読む

PostgreSQLドキュメントの歩き方 – 運用管理編

前回記事のデプロイメント編に引き続き、巨大な PostgreSQLドキュメントの読むべきポイントを紹介していきます。今回は「PostgreSQLドキュメントの歩き方 – 運用管理編」と題しまして、主として構築済みの PostgreSQL の運用管理を担当する人を対象とします。

PostgreSQLドキュメントの在り処や基本的な見方については前回記事を参照ください。

続きを読む