More Related Content
PDF
PDF
PDF
PDF
PDF
Lt ingaoho-jsonb+postgeres fdw PDF
PDF
JSONBはPostgreSQL9.5でいかに改善されたのか PDF
What's hot
PDF
PDF
pg_bigm(ピージー・バイグラム)を用いた全文検索のしくみ(後編) PDF
PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介 PDF
PDF
PDF
DynamoDB MyNA・JPUG合同DB勉強会 in 東京 PDF
PDF
PostgreSQLの運用・監視にまつわるエトセトラ PDF
PDF
PDF
PDF
MyNA JPUG study 20160220-postgresql-json-datatype PDF
Pgunconf 20121212-postgeres fdw PDF
PDF
外部データラッパによる PostgreSQL の拡張 PDF
PDF
perfを使ったPostgreSQLの解析(後編) ODP
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@Kyoto PDF
PostgreSQLレプリケーション(pgcon17j_t4) PDF
MySQL のユーザー定義変数と RDB のココロ Viewers also liked
PDF
pg_bigm(ピージーバイグラム)を用いた全文検索のしくみ PDF
PDF
[db tech showcase Tokyo 2015] B15:最新PostgreSQLはパフォーマンスが飛躍的に向上する!? - PostgreSQ... PDF
VisualSFMとMeshLabとCloudCompareによるドローン撮影画像を用いたデジタル地図作成 PDF
PDF
NTT DATA と PostgreSQL が挑んだ総力戦 PDF
PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012 Similar to Incoming PostgreSQL 9.4 次バージョンの新機能をご紹介
PDF
Chugoku db 17th-postgresql-9.6 PDF
各スペシャリストがお届け!データベース最新情報セミナー -PostgreSQL10- PDF
PDF
PostgreSQL 10 新機能 @オープンセミナー香川 2017 PDF
Postgre sql update_20170310 PDF
PDF
アナリティクスをPostgreSQLで始めるべき10の理由@第6回 関西DB勉強会 PPTX
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ... PDF
Hackers Champloo 2016 postgresql-9.6 PDF
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料) PDF
PostgreSQL 10 新機能 @OSC 2017 Fukuoka PDF
JTF2021w F3 postgresql frontline PPTX
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料) PDF
PDF
PDF
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima PDF
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料) PDF
JSONB型でpostgresをNoSQLっぽく使う PDF
知って得するWebで便利なpostgre sqlの3つの機能 PDF
[db tech showcase Tokyo 2014] D21: Postgres Plus Advanced Serverはここが使える&9.4新機... Incoming PostgreSQL 9.4 次バージョンの新機能をご紹介
- 1.
- 2.
- 3.
3
自己紹介
● 宗近 龍一郎 (ムネチカ リュウイチロウ ) といいま
す
● 日本 PostgreSQL ユーザ会の関西支部の支部長
をしています
●
日本 PostgreSQL ユーザ会については後ほどご紹介を
します
● 大阪にある株式会社あすかという会社で取締役副
社長をしています
●
会場から歩いて 10 分ほど。扇町公園の近くに会社があ
ります
- 4.
4
日本 PostgreSQL ユーザ会について
●PostgreSQL の普及促進を目的に活動する特定非
営利活動( NPO )法人です。
● 北は北海度から、南は沖縄まで 9 つの支部があ
り、それぞれの支部が特徴を出した活動をしていま
す
●
勉強会や OSC への出展/講演等
●
いくつかの分科会活動があり、ドキュメントの充実
や技術検証等を行っています
● しくみ分科会、文書・書籍関連分科会等
- 5.
- 6.
- 7.
- 8.
8
PostgreSQL の軌跡
PG 7.0PG 7.1 PG 7.2 PG 7.3 PG 7.4 PG 8.0 PG 8.1 PG 8.2 PG 8.3 PG 8.4 PG 9.0 PG 9.1 PG 9.2
0
20000
40000
60000
80000
100000
120000
PostgreSQL のコードサイズとリリース
コードサイズ(byte)
更新の
高速化ビットマップ
スキャンプリペアド
ステートメント
並列実行
VACUUM外部キー、
JOIN 構文
トランザク
ションログ
スキーマ
PITR 、
Windows
12 CPU
スケール
|
2001 年
4 月
|
2005 年
1 月
|
2009 年
7 月
|
2006 年
12 月
|
2002 年
11 月
ウィンドウ関数
再帰 SQL 64 CPU
スケール
|
2011 年
9 月
同期レプリケーション
外部テーブル
レプリケーション
Windows 64bit
コードサイズとリリース
1メジャーバージョンが
1年毎にリリース
- 9.
9
今のバージョン 9.3 について
●OSC2013 沖縄で公演された藤井さんの資料がよく
まとまっています。
●
http://www.slideshare.net/hadoopxnttdata/postgre-sql93-24136770
● かいつまんで言うと以下の機能の実装
● マテリアライズビュー
● 更新可能ビュー
●
JSON の進化
●
FDW
- 10.
- 11.
11
9.4 拡張のサマリ (1)
●性能向上&性能チューニング補助
●
GIN インデックスの性能向上
● バイナリ JSON データ型 (JSONB)
● 新しい SQL 構文
● 管理機能の拡張
● 拡張のための基盤機能
● 論理レプリケーションのための基盤
●
並列処理のための基盤
- 12.
- 13.
13
性能向上 (1)
● GINインデックスの性能向上
●
配列、ハッシュ( hstore )、全文検索テキストなど、複数
要素を持つデータ型に対して「ある要素を持つもの」を
検索するときに使われるインデックス
●
サイズ縮小(2~10倍)、検索も高速化
key (整数
型)
tags (配列型)
100 'DBA' , 'SQL'
101 'SQL' , 'HACK'
102 'DBA'
103 'HACK'
GIN
'DBA' を
含むものは?
- 14.
14
性能向上 (2)
● WAL性能向上
●
PostgreSQL はデータ更新にあたり、必ず WAL ( Write
Ahead Log =トランザクションログ)をストレージに書き
出し、しばしば性能ボトルネックとなります
●
データ更新に対する WAL 出力量が軽減
● WAL 出力のロック競合が軽減(並列性向上)
table,
index,
etc,
WAL
更新処理
postgres
プロセス
- 15.
- 16.
16
バイナリ JSON 型
●新たな JSON データ格納用 JSONB データ型
●
構文解析したうえでバイナリ格納
– 従来 JSON 型はテキスト格納で、処理のつど構文解析
– 要素間の空白文字や、無駄なキー重複定義は、データとして
保持されない
● GIN インデックスが利用可能
– JSON データ内の要素を高速に検索可能
{"a":1,"b":2,"c":3}
{ "a":1, "b":2, "c":3 }
{"a":1, "b":200, "b":20,"b":2, "c":3}
JSONB では
三つは同値
- 17.
17
新しい SQL 構文
●CHECK オプション付き更新ビュー
– ビューとして見える内容しか挿入、更新できなくなります
● FILTER
– 集約処理時点でフィルタを設定できます
CREATE VIEW uv AS SELECT c1, c2 FROM t1
WITH CHECK OPTION;
SELECT grp, count(*) FILTER (WHERE status = 1)
count(*) (WHERE status = 2)
FROM tbl GROUP BY grp;
- 18.
18
管理機能の拡張 (1)
● REFRESHMATERIALIZED VIEW
[CONCURRENTLY]
– 単一ユニークキーならロック競合回避モードを選択可
● ALTER SYSTEM コマンド
– SQL で postgresql.conf 設定ファイルを書き換え
● ALTER TABLESPACE 拡張
●
テーブルスペース毎に ramdom_page_cost 指定
– ストレージデバイスに応じたチューニング
●
MOVE でまとめて指定テーブルスペースに移動
– 従来はオブジェクト毎に ALTER TABLE 等で移動
- 19.
19
管理機能の拡張 (1)
● REFRESHMATERIALIZED VIEW
[CONCURRENTLY]
– 単一ユニークキーならロック競合回避モードを選択可
● ALTER SYSTEM コマンド
– SQL で postgresql.conf 設定ファイルを書き換え
● ALTER TABLESPACE 拡張
●
テーブルスペース毎に random_page_cost 指定
– ストレージデバイスに応じたチューニング
●
MOVE でまとめて指定テーブルスペースに移動
– 従来はオブジェクト毎に ALTER TABLE 等で移動
- 20.
20
管理機能の拡張 (2)
● pg_stat_archiverビュー
– アーカイブ状態を SQL コマンドから確認
● 設定項目追加
● autovacuum_work_mem
– 自動 VACUUM における work_mem
●
session_preload_library
– 接続ごとの事前ロードライブラリ
● wal_log_hints
– ヒントビット(フラグ)変更でも WAL を書き出すか指定/ on
でチェックサム機能を有効にしたとき同様の WAL 量となる
- 21.
- 22.
22
拡張のための基盤機能 (1)
● 論理(ロジカル)変更出力フレームワーク
●
WALに行変更情報を出力できる
● 読み取る API が用意されている
● 行を特定するのに何を使うかをテーブル毎に指定
– 行全体の旧値、主キー、など
●
レプリケーション、監査ログ、データ変更チェック(クエリ
キャッシュ無効化する、変更がなければ次のバックアッ
プを取らない、など)に応用
– PostgreSQL 本体付属ではないが、本機能を活用したマルチ
マスタレプリケータ「 BDR 」がある
- 23.
23
拡張のための基盤機能 (2)
● 動的(dynamic) バックエンドプロセス
– これまでは起動時に起動するのみ
– 任意タイミングで起動、停止できる
● 動的 (dynamic) 共有バッファ確保
– 本機能によるメッセージキュー「 contrib/test_shm_mq 」
● これらは拡張フレームワーク
●
将来のパラレルクエリを睨む
– 単一接続のクエリから、複数 CPU コアを使って処理を実行さ
せるのに必要な枠組み
– 動的共有バッファはプロセス間のデータ交換に必要
- 24.
24
PostgreSQL 9.4 のスケジュール
●
1年前くらいに9.4 系開発開始(コードブランチ)
● CF ( コミットフェスト)ごとに機能追加を行っていく
● 現在ベータ版でのテスト段階
●
beta1 → beta2 → rc1 → rc2 → 9.4 リリース
● 例年秋ごろリリース
master
9.4
2013 年 6 月 13 日
コードブランチ
2014 年 1 月~
最終の CF4 で
仕様凍結
2014 年 5 月 15 日
9.4beta1 リリース
2014 年秋
9.4 リリース?
- 25.
25
最近の面白いネタ
● GPU でPostgreSQL を高速化
●
http://ch.nicovideo.jp/akiba-cyberspacecowboys/blomaga/ar555735
● PG-Storm により GPU に処理を振り分ける
- 26.