SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

直近開催のイベントはこちら!

EnterpriseZine編集部ではイベントを随時開催しております

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けの講座「EnterpriseZine Academy」や、すべてのITパーソンに向けた「新エバンジェリスト養成講座」などの講座を企画しています。EnterpriseZine編集部ならではの切り口・企画・講師セレクトで、明日を担うIT人材の育成をミッションに展開しております。

お申し込み受付中!

DB Press(AD)

OSS-DBをきわめて優位性を築こう OSS-DB最前線イベントレポート

PostgreSQL 9.3の新機能、目玉は「マテビュー」こと、マテリアライズドビュー

PostgreSQLの研修講師も務めるNTTソフトウェア 勝俣 智成氏
PostgreSQLの研修講師も務めるNTTソフトウェア
勝俣 智成氏

 基調講演ではPostgreSQLの最新状況が解説された。9月9日には最新版となるPostgreSQL 9.3がリリースされたところだ。PostgreSQLに携わり9年、国内外のPostgreSQLカンファレンスへ参加し、PostgreSQLの研修講師も務めるNTTソフトウェアの勝俣智成氏が、PostgreSQL 9.3のポイントを解説した。

 PostgreSQL 9.3では150もの新機能追加や機能改善がなされており、なかでも目を引くのがマテリアライズドビュー(通称「マテビュー」)と更新可能ビュー、レプリケーション改善となる高速フェールオーバーなどだ。

 最大の目玉となるのがマテビュー。クエリの結果をキャッシュしたビューであり、頻繁にアクセスするのであれば結果がキャッシュされているので有効となる。またマテビューにはインデックスを定義することができるため、集計も高速化できる。

 ただし元テーブルが更新されても自動的にマテビューを更新する機能はないため、ビューはキャッシュしたときのままである。「REFRESH MATERIALIZED VIEW」コマンドで更新する必要がある。またマテビューを更新するにしても、差分のみを更新するようにはなっていない。現段階ではほぼ最初から作り直すような仕様になっているので注意が必要だ。次バージョンの9.4では差分のみを更新するような高速化に向けて開発が始められているとのこと。

 続いて更新可能ビュー。PostgreSQL 9.2まではビューは参照しかできなかったが、PostgreSQL 9.3から更新も可能となった。一定の条件を満たせば更新できるビューを定義することができる。ただし以下の条件にあてはまると更新可能とはできず、参照のみのビューとなる。例えば「FROM句の指定が1つのテーブルもしくは更新可能ビューになっていない」、「最上位レベルでWITH、DISTINCT、GROUP BY、HAVING、LIMIT、OFFSETが使われていない」、「最上位レベルで集合操作が使われていない」などである。

 もし更新可能ビューを使用するのであれば「移行時に注意が必要です」と勝俣氏は注意を促す。9.3ではビューのデフォルトが更新可能ビューとなるため、9.2以前で参照用に使用していたビューがバージョンアップすることにより更新可能ビューになる可能性があるからだ。適切な権限設定を施すなど注意が必要だ。

 それからレプリケーション改善として高速フェールオーバー機能が追加された。9.2までのフェールオーバー処理ではpromote、recovery、checkpointの処理が終了してから、ようやく更新可能な状態となっていた。9.3からはrecovery処理が終われば更新可能となる。checkpointは後で実行することができ、checkpoint処理を待つ時間がまるまる省かれるため高速化が見込まれる。

 ただしこうした処理のありかたについてはコミュニティ内部でも賛否両論あるそうだ。そのため従来型(9.2と同じ)のフェールオーバーも9.3では併存となっている。ほかにもレプリケーション改善策として、9.3では故障検知を迅速化できる「wal_sender_timeout」(9.2では「replication_timeout」)や「wal_reciever_timeout」(新設)というパラメーターが提供されている。

 少し気が早いものの、PostgreSQL 9.4についても少し言及があった(ただし9.4の開発は始まったばかりなので変更になる可能性もある)。9.3までのPostgreSQLでレプリケーションを行う場合は物理レプリケーション(同じデータベースクラスタ)となるためテーブル単位では行えないことになっている。そのため9.4以降では異なるデータベースクラスタ間でのレプリケーションやテーブル単位のレプリケーションも可能となりそうとのことだ。今後レプリケーションの選択肢が増えていきそうだ。

 勝俣氏は最後に「今後PostgreSQLがエンタープライズの領域で利用されることを期待しています」と述べて結んだ。

次のページ
気になるOSS-DB Gold試験対策は?

この記事は参考になりましたか?

  • Facebook
  • Twitter
  • Pocket
  • note
DB Press連載記事一覧

もっと読む

この記事の著者

加山 恵美(カヤマ エミ)

EnterpriseZine/Security Online キュレーターフリーランスライター。茨城大学理学部卒。金融機関のシステム子会社でシステムエンジニアを経験した後にIT系のライターとして独立。エンジニア視点で記事を提供していきたい。EnterpriseZine/DB Online の取材・記事も担当しています。Webサイト:https://emiekayama.net

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

EnterpriseZine(エンタープライズジン)
https://enterprisezine.jp/article/detail/5332 2013/11/13 11:46

Job Board

AD

おすすめ

アクセスランキング

アクセスランキング

イベント

EnterpriseZine(エンタープライズジン)編集部では、情報システム担当、セキュリティ担当の方々向けに、EnterpriseZine Day、Security Online Day、DataTechという、3つのイベントを開催しております。それぞれ編集部独自の切り口で、業界トレンドや最新事例を網羅。最新の動向を知ることができる場として、好評を得ています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング