SlideShare a Scribd company logo
1 of 44
Download to read offline
PostgreSQL 10 新機能
オープンセミナー香川 2017
2017.09.09
日本PostgreSQLユーザ会 花田茂
自己紹介
• 花田 茂(Shigeru HANADA)
• クラウドな会社でサポートエンジニア
• PostgreSQLの開発に参加
– 主に外部データラッパ機能
• SNS
– Twitter: @s87
– https://www.slideshare.net/babystarmonja/
そもそも「PostgreSQL」とは?
• 読み方は「ポストグレスキューエル」
– または「ポストグレス」「ポスグレ」
• オープンソースのRDBMS
– https://www.postgresql.org
• 開発主体が企業ではなくコミュニティ
– PGDG: PostgreSQL Global Development Group
• PostgreSQLライセンス(BSD系)
– 改変可能、ソース提供不要
そもそも「PostgreSQL」とは?
• 開発系の機能
– SQL標準に準拠した構文のサポート
– 集計用途のウィンドウ関数なども
– 効率的な実行計画
– 各種スキャン、結合(Nested Loop、Merge Join、Hash Join)
– 豊富なインデックス種別
– B-Tree、Hash、GiST、SP-GiST、GIN、BRIN
– 豊富なデータ型と演算子
– JSON、幾何(図形)データ、IPアドレス、配列、範囲型
– 豊富なストアドプロシージャ・ファンクション言語
– PL/pgSQL、SQL、JavaScript(v8)、Python、etc.
そもそも「PostgreSQL」とは?
• 運用管理系の機能
– レプリケーション(同期・非同期)
– MySQLの用語でいう「準同期」レプリケーション
– 物理レプリケーション
– カスケードも可能
– リモートバックアップ
– pg_basebackupでネットワーク越しに物理バックアップを取得
– PITR(Point in Time Recovery)
– 任意のタイミングを指定してリカバリ可能
– GUIツール
– pgAdmin3/pgAdmin4
そもそも「PostgreSQL」とは?
• アーキテクチャ的な特徴
– プロセスモデル
– スレッドモデルと比較して接続確立が比較的重い
– pgpool-IIやアプリケーションサーバーでの接続プーリングをおすすめ
– 追記型MVCC
– 更新・削除時に古いバージョンに削除フラグを立てて残す
– VACUUMが必要、ただし現在はデフォルトで自動化
– OracleやMySQLは上書き型で、UNDO領域を持つ
– WALベースのストリーミングレプリケーション
– 物理レプリケーションのためレプリケーションエラーは発生しづらい
– メジャーバージョンを跨げないのでローリングアップグレードできない
そもそも「PostgreSQL」とは?
• プラガブル(Pluggable)
– 関数
– SQL、PL/pgSQL、Tcl、Perl、Python、JavaScript(V8)、R、Etc.
– 外部データラッパ
– PostgreSQL、File、MySQL、Oracle、Redis、MongoDB、Twitter、Etc.
– カスタムスキャン
– Pg-Strom (GPGPUを使ってデータを超並列処理)
– http://strom.kaigai.gr.jp
– 手続き言語
– 好きな言語で関数を書ける!
– インデックス
そもそも「PostgreSQL」とは?
• 他のDBMSとの比較
– PostgreSQLとMySQL、使うならどっち? データベース
専門家が8つの視点で徹底比較!(エンジニアHub)
– https://employment.en-japan.com/engineerhub/entry/2017/09/05/110000
– そーだいなるらくがき帳今こそ知りたい、2大OSSデータ
ベースのMySQLとPostgreSQLの違いについて話をして
きた(そーだいなるらくがき帳)
– http://soudai.hatenablog.com/entry/2017/05/27/173055
バージョンについて
• バージョン表記
– 従来は 「 9.6.5」のように三つの数字で表記
– 最初の二つがメジャーバージョン、新機能追加
– 最後の一つがマイナーバージョン、バグフィックスなど
– 次バージョンから「10.1」のように二つの数字で表記
– 最初がメジャーバージョン、新機能追加
– 最後がマイナーバージョン、バグフィックスなど
• 概ね一年に一度メジャーバージョンリリース
– 現在のSTABLEは9.6.5
– 次バージョンの10は現在Beta4、もうすぐRC?
最近のバージョンの推移
• 9.5
– UPSERTサポート
– INSERT ~ ON CONFLICT DO UPDATE ~
– BRIN(Block Range Index)
– ブロック範囲でインデックスをはる、大規模テーブル向け機能
– Row-level Security
– 列値とクエリ実行ユーザーなどにもとづいてアクセス権を設定
– 同時実行性能の改善
– ロック改善などで多CPUコア環境でよりスケール可能に
最近のバージョンの推移
• 9.6
– パラレルクエリ
– スキャン、結合、集約を並列に実行
– マルチ同期レプリケーション
– 複数のレプリカに同期レプリケーションが可能に
– FDW(Foreign Data Wrapper)機能強化
– DATABASE LINKやリンクサーバーのような機能
– ソートや結合を外部データソースで実行可能に
最近のバージョンの推移
• 10 (9/9現在Beta 4)
– パラレルクエリの改良
– B-Treeインデックススキャン、ビットマップスキャン、マージ結合、一部
のサブクエリ
– ロジカルレプリケーション
– 論理レプリケーションが可能に
– ネイティブパーティショニング
– テーブル継承による擬似パーティショニングから構文サポートに
– マルチ同期レプリケーションでのQuorum Commit
– N台に同期すればOK
– その他
– ハッシュインデックスのWALサポート(クラッシュセーフ)
– 複合列での統計情報のサポート
最近のバージョンの推移
• 10 (9/9現在Beta 4)
– パラレルクエリの改良
– B-Treeインデックススキャン、ビットマップスキャン、マージ結合、一部
のサブクエリ
– ロジカルレプリケーション
– 論理レプリケーションが可能に
– ネイティブパーティショニング
– テーブル継承による擬似パーティショニングから構文サポートに
– マルチ同期レプリケーションでのQuorum Commit
– N台に同期すればOK
– その他
– ハッシュインデックスのWALサポート(クラッシュセーフ)
– 複合列での統計情報のサポート
詳しくはリリースノートで!
https://www.postgresql.org/docs/10/static/release-10.html
パラレルクエリ
パラレルクエリの概要
• WorkerとGather
– パラレル度数に合わせてWorkerを起動して処理
– 各Workerの出力をGatherしてまとめる
Gather
Worker Worker Worker
パラレルクエリ関連のGUC(1)
• パラレル処理の制御
– max_parallel_workers_per_gather
– Gatherごとの最大Worker数
– max_parallel_workers
– インスタンス全体での最大Worker数
– min_parallel_table_scan_size
– パラレルクエリを検討する最小テーブルデータ量
– min_parallel_index_scan_size
– パラレルクエリを検討する最小インデックスデータ量
– force_parallel_mode
– デバッグ用途などでパラレルクエリを強制
パラレルクエリ関連のGUC(2)
• 実行計画作成時のコスト計算など
– parallel_setup_cost
– パラレルクエリでのWorker起動コスト
– parallel_tuple_cost
– パラレルクエリでのタプル転送コスト
パラレルクエリの例
• 標準ベンチマークツールのpgbenchを使用
• 「支店ごとの預金残高の平均」を集計
postgres=# EXPLAIN SELECT bid, avg(abalance) FROM pgbench_accounts WHERE aid % 10 = 0 GROP BY bid ORDER BY
bid;
QUERY PLAN
------------------------------------------------------------------------------------------------------------
Finalize GroupAggregate (cost=2286598.72..2288424.56 rows=1000 width=36)
Group Key: bid
-> Gather Merge (cost=2286598.72..2288402.06 rows=2000 width=36)
Workers Planned: 2
-> Partial GroupAggregate (cost=2285598.69..2287171.19 rows=1000 width=36)
Group Key: bid
-> Sort (cost=2285598.69..2286119.52 rows=208333 width=8)
Sort Key: bid
-> Parallel Seq Scan on pgbench_accounts (cost=0.00..2264345.00 rows=208333 width=8)
Filter: ((aid % 10) = 0)(10 rows)
パラレルクエリの例
Finalize GroupAggregate
Group Key: bid
-> Gather Merge
Workers Planned: 2
-> Partial GroupAggregate
Group Key: bid
-> Sort
Sort Key: bid
-> Parallel Seq Scan on pgbench_accounts
Filter: ((aid % 10) = 0)
パラレルクエリの例
Finalize GroupAggregate
Group Key: bid
-> Gather Merge
Workers Planned: 2
-> Partial GroupAggregate
Group Key: bid
-> Sort
Sort Key: bid
-> Parallel Seq Scan on pgbench_accounts
Filter: ((aid % 10) = 0)
パラレルクエリの例
Finalize GroupAggregate
Group Key: bid
-> Gather Merge
Workers Planned: 2
-> Partial GroupAggregate
Group Key: bid
-> Sort
Sort Key: bid
-> Parallel Seq Scan on pgbench_accounts
Filter: ((aid % 10) = 0)
パラレルクエリの例
Finalize GroupAggregate
Group Key: bid
-> Gather Merge
Workers Planned: 2
-> Partial GroupAggregate
Group Key: bid
-> Sort
Sort Key: bid
-> Parallel Seq Scan on pgbench_accounts
Filter: ((aid % 10) = 0)
パラレルクエリの例
Finalize GroupAggregate
Group Key: bid
-> Gather Merge
Workers Planned: 2
-> Partial GroupAggregate
Group Key: bid
-> Sort
Sort Key: bid
-> Parallel Seq Scan on pgbench_accounts
Filter: ((aid % 10) = 0)
パラレルクエリの例
Finalize GroupAggregate
Group Key: bid
-> Gather Merge
Workers Planned: 2
-> Partial GroupAggregate
Group Key: bid
-> Sort
Sort Key: bid
-> Parallel Seq Scan on pgbench_accounts
Filter: ((aid % 10) = 0)
パラレルクエリの例
Finalize GroupAggregate
Group Key: bid
-> Gather Merge
Workers Planned: 2
-> Partial GroupAggregate
Group Key: bid
-> Sort
Sort Key: bid
-> Parallel Seq Scan on pgbench_accounts
Filter: ((aid % 10) = 0)
パラレルクエリの例
• 大規模テーブル同士をPK(またはインデックス
のある列)で結合
postgres=# EXPLAIN SELECT count(*) FROM pgbench_accounts a1 JOIN pgbench_accounts a2 ON a1.aid = a2.aid;
QUERY PLAN
-------------------------------------------------------------------------------------------------------------
---------------------------------------
Finalize Aggregate (cost=5486220.02..5486220.03 rows=1 width=8)
-> Gather (cost=5486219.81..5486220.02 rows=2 width=8)
Workers Planned: 2
-> Partial Aggregate (cost=5485219.81..5485219.82 rows=1 width=8)
-> Merge Join (cost=1.14..5381053.14 rows=41666667 width=0)
Merge Cond: (a1.aid = a2.aid
) -> Parallel Index Only Scan using pgbench_accounts_pkey on pgbench_accounts a1
(cost=0.57..2013443.23 rows=41666667 width=4)
-> Index Only Scan using pgbench_accounts_pkey on pgbench_accounts a2
(cost=0.57..2596776.57 rows=100000000 width=4)(8 rows)
パラレルクエリの今後
• APPEND(UNION)
• COPY FROM
• インデックス作成
• VACUUM
• SERIALIZABLE分離レベル
宣言的
パーティショニング
パーティショニングの概要
• パーティショニングとは
– 論理的には一つの大きなテーブルを物理的に分割すること
– 分割基準は値リスト・範囲などが一般的
• 効果
– 検索条件に応じて特定パーティションのみ処理することで
パフォーマンス向上が望める
– パーティション単位で削除することでを軽減(DELETE
は遅い)
– あまり参照されないパーティションを遅いが安価なスト
レージに配置してコストを削減
これまで
• テーブル継承とチェック制約で擬似的にパー
ティショニングを実装
• 「Constraint Exclusion(制約による排除)」によ
り検索条件に合致するパーティション(子表)の
みスキャン
• パーティション追加などの管理が煩雑
宣言的パーティショニング
• レンジとリストをサポート
– レンジ: 年月、名称など
– リスト: コード値など
– パーティションキーには関数呼び出しなどの式も指定可能
– 「パーティションキーのための列」が不要になる
• 親テーブルと子テーブル
– パーティション基準を指定して親テーブルを作成したのち
に、各パーティションの子テーブルを作成する
– インデックスは各子テーブルに作成→一つのサイズが小さ
くなり、頻繁にアクセスされるパーティションのインデッ
クスがメモリに配置されやすくなる
手順
• 親表を作成
– CREATE TABLE parent(…) PARTITION BY
[{RANGE|LIST} ({column|expression})];
• 子表を作成
– CREATE TABLE child_1 PARTITION OF parent FOR
VALUES FROM ({minimum value|MINVALUE}) TO
({maximum value|MAXVALUE});
– 下限は「以上」、上限は「未満」→上限=次の下限
– 制限なしの意味で「MINVALUE」や「MAXVALUE」も指定可能
– CREATE TABLE child_1 PARTITION OF parent FOR
VALUES IN (value[ , …]);
手順
postgres=# ¥d+ sales_item
Table "public.sales_item"
Column | Type | Collation | Nullable | Default | Storage | Stats target | Description
------------+---------+-----------+----------+---------+----------+--------------+-------------
id | integer | | | | plain | |
shop_id | integer | | | | plain | |
sales_date | date | | | | plain | |
amount | bigint | | | | plain | |
note | text | | | | extended | |
Partition key: RANGE (sales_date)
Partitions: sales_item_201701 FOR VALUES FROM ('2017-01-01') TO ('2017-02-01'),
sales_item_201702 FOR VALUES FROM ('2017-02-01') TO ('2017-03-01'),
sales_item_201703 FOR VALUES FROM ('2017-03-01') TO ('2017-04-01')
手順ー9.6まで
/* まず親テーブルを作成 */
CREATE TABLE sales_item (id int, shop_id int, sales_date date, amount
bigint, note text);
/* 年月ごとに子テーブルを作成し、CHECK 制約でデータ範囲を定義 */
CREATE TABLE sales_item_201701 (LIKE sales_item) INHERITS (sales_item);
ALTER TABLE sales_item_201701 ADD CONSTRAINT ck_sales_date CHECK
(sales_date >= '2017-01-01'::date AND sales_date < '2017-02-01');
/* 新しい値範囲のデータを子テーブルに追加するようにトリガーを変更 */
…
手順ー10から
/* まず親テーブルを作成 */
CREATE TABLE sales_item (id int, shop_id int, sales_date date, amount
bigint, note text) PARTITIONED BY RANGE (sales_date);
/* 年月ごとに子テーブルを作成 */
CREATE TABLE sales_item_201701 PARTITION OF sales_item FOR VALUES FROM
('2017-01-01') TO ('2017-02-01');
/* パーティション追加時はテーブルを追加するだけ */
CREATE TABLE sales_item_201702 PARTITION OF sales_item FOR VALUES FROM
('2017-02-01') TO ('2017-03-01');
CREATE TABLE sales_item_201703 PARTITION OF sales_item FOR VALUES FROM
('2017-03-01') TO ('2017-04-01');
論理レプリケーション
従来のレプリケーションは?
• 従来のストリーミングレプリケーションは物理
レプリケーション
• データブロックに対する操作などを記録した
WALを伝搬するため、レプリカでもブロックイ
メージが同一となる
• レプリケーション先は読み取り専用のため競合
はなくレプリケーションエラーは起きにくい
物理レプリケーションの制限
• メジャーバージョンを統一する必要がある
– バイナリフォーマットに依存するため
– ローリングアップグレードができない
• 常に全体をレプリケーション
– 集計用途などで特定部分のみレプリケーション、といった
ユースケースでも、全体を保持できるH/Wが必要
– 1 to Nの関係のみで、特定のインスタンスに情報を集約で
きない
これまでは、サードパーティのレプリケーションツールで対応する必要があった
論理レプリケーションの概要
• PublishとSubscribe
– レプリケーション元でPublish(変更の配布)
– レプリケーション先でSubscribe(変更の購読)
• レプリケーションスロット
– 各レプリケーション先ごとにレプリケーション元に作成
– レプリケーション状況を把握し、不要なWALのみ削除
論理レプリケーションの注意点
• レプリケーション先と更新が競合しうる
• INSERT ON CONFLICT では実際に発生した
変更のみが伝搬する
• COPY FROMはINSERTとして伝搬する
• TRUNCATEとDDLは伝搬しない
PostgreSQL関連情報
情報源
• JPUG (https://www.postgresql.jp)
• Let’s Postgres (https://lets.postgresql.jp)
• ML (https://www.postgresql.jp/npo/mailinglist)
• Slack (https://postgresql-hackers-jp.herokuapp.com/)
• Twitter @jpug_study
参考文献
• PostgreSQL Documents
– https://www.postgresql.org/docs/10/static/runtime-config-query.html
• PostgreSQL 10がやってくる!(その5) ロジカルレプリケー
ション基本編
– http://qiita.com/nuko_yokohama/items/af3bbd9acbd9723b6b95
• PostgreSQL 10 Beta1 新機能検証結果
– http://h50146.www5.hpe.com/products/software/oe/linux/mainstream/s
upport/lcc/pdf/PostgreSQL_10_New_Features_ja_20170522-1.pdf
• PostgreSQL10徹底解説
– https://www.slideshare.net/masahikosawada98/postgresql10
• 次期バージョンPostgreSQL 10 の 新機能とその後の方向性
– https://www.sraoss.co.jp/event_seminar/2017/db_tech_show_case_oss_2
017.pdf
Any Questions?

More Related Content

What's hot

20090107 Postgre Sqlチューニング(Sql編)
20090107 Postgre Sqlチューニング(Sql編)20090107 Postgre Sqlチューニング(Sql編)
20090107 Postgre Sqlチューニング(Sql編)Hiromu Shioya
 
[9.5新機能]追加されたgroupbyの使い方
[9.5新機能]追加されたgroupbyの使い方[9.5新機能]追加されたgroupbyの使い方
[9.5新機能]追加されたgroupbyの使い方Kosuke Kida
 
DynamoDB MyNA・JPUG合同DB勉強会 in 東京
DynamoDB   MyNA・JPUG合同DB勉強会 in 東京DynamoDB   MyNA・JPUG合同DB勉強会 in 東京
DynamoDB MyNA・JPUG合同DB勉強会 in 東京Yuko Mori
 
GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]
GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]
GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]Kohei KaiGai
 
PostgreSQL10徹底解説
PostgreSQL10徹底解説PostgreSQL10徹底解説
PostgreSQL10徹底解説Masahiko Sawada
 
20140531 JPUGしくみ+アプリケーション分科会 勉強会資料
20140531 JPUGしくみ+アプリケーション分科会 勉強会資料20140531 JPUGしくみ+アプリケーション分科会 勉強会資料
20140531 JPUGしくみ+アプリケーション分科会 勉強会資料kasaharatt
 
Jpug study-pq 20170121
Jpug study-pq 20170121Jpug study-pq 20170121
Jpug study-pq 20170121Kosuke Kida
 
外部データラッパによる PostgreSQL の拡張
外部データラッパによる PostgreSQL の拡張外部データラッパによる PostgreSQL の拡張
外部データラッパによる PostgreSQL の拡張Shigeru Hanada
 
Pgunconf 20121212-postgeres fdw
Pgunconf 20121212-postgeres fdwPgunconf 20121212-postgeres fdw
Pgunconf 20121212-postgeres fdwToshi Harada
 
Lt ingaoho-jsonb+postgeres fdw
Lt ingaoho-jsonb+postgeres fdwLt ingaoho-jsonb+postgeres fdw
Lt ingaoho-jsonb+postgeres fdwToshi Harada
 
PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介
PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介
PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介Insight Technology, Inc.
 
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)Satoshi Yamada
 
Chugokudb study-20150131
Chugokudb study-20150131Chugokudb study-20150131
Chugokudb study-20150131Toshi Harada
 
簡単!AWRをEXCELピボットグラフで分析しよう♪
簡単!AWRをEXCELピボットグラフで分析しよう♪簡単!AWRをEXCELピボットグラフで分析しよう♪
簡単!AWRをEXCELピボットグラフで分析しよう♪Yohei Azekatsu
 
20160121 データサイエンティスト協会 木曜セミナー #5
20160121 データサイエンティスト協会 木曜セミナー #520160121 データサイエンティスト協会 木曜セミナー #5
20160121 データサイエンティスト協会 木曜セミナー #5Koichiro Sasaki
 
問合せ最適化インサイド
問合せ最適化インサイド問合せ最適化インサイド
問合せ最適化インサイドTakahiro Itagaki
 
PostgreSQL:行数推定を読み解く
PostgreSQL:行数推定を読み解くPostgreSQL:行数推定を読み解く
PostgreSQL:行数推定を読み解くHiroya Kabata
 

What's hot (20)

20090107 Postgre Sqlチューニング(Sql編)
20090107 Postgre Sqlチューニング(Sql編)20090107 Postgre Sqlチューニング(Sql編)
20090107 Postgre Sqlチューニング(Sql編)
 
[9.5新機能]追加されたgroupbyの使い方
[9.5新機能]追加されたgroupbyの使い方[9.5新機能]追加されたgroupbyの使い方
[9.5新機能]追加されたgroupbyの使い方
 
DynamoDB MyNA・JPUG合同DB勉強会 in 東京
DynamoDB   MyNA・JPUG合同DB勉強会 in 東京DynamoDB   MyNA・JPUG合同DB勉強会 in 東京
DynamoDB MyNA・JPUG合同DB勉強会 in 東京
 
GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]
GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]
GPUとSSDがPostgreSQLを加速する~クエリ処理スループット10GB/sへの挑戦~ [DB Tech Showcase Tokyo/2017]
 
PostgreSQL10徹底解説
PostgreSQL10徹底解説PostgreSQL10徹底解説
PostgreSQL10徹底解説
 
20140531 JPUGしくみ+アプリケーション分科会 勉強会資料
20140531 JPUGしくみ+アプリケーション分科会 勉強会資料20140531 JPUGしくみ+アプリケーション分科会 勉強会資料
20140531 JPUGしくみ+アプリケーション分科会 勉強会資料
 
Jpug study-pq 20170121
Jpug study-pq 20170121Jpug study-pq 20170121
Jpug study-pq 20170121
 
Vacuum徹底解説
Vacuum徹底解説Vacuum徹底解説
Vacuum徹底解説
 
外部データラッパによる PostgreSQL の拡張
外部データラッパによる PostgreSQL の拡張外部データラッパによる PostgreSQL の拡張
外部データラッパによる PostgreSQL の拡張
 
Pgunconf 20121212-postgeres fdw
Pgunconf 20121212-postgeres fdwPgunconf 20121212-postgeres fdw
Pgunconf 20121212-postgeres fdw
 
Lt ingaoho-jsonb+postgeres fdw
Lt ingaoho-jsonb+postgeres fdwLt ingaoho-jsonb+postgeres fdw
Lt ingaoho-jsonb+postgeres fdw
 
pg_bigmを用いた全文検索のしくみ(前編)
pg_bigmを用いた全文検索のしくみ(前編)pg_bigmを用いた全文検索のしくみ(前編)
pg_bigmを用いた全文検索のしくみ(前編)
 
PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介
PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介
PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介
 
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
PostgreSQLの実行計画を読み解こう(OSC2015 Spring/Tokyo)
 
Chugokudb study-20150131
Chugokudb study-20150131Chugokudb study-20150131
Chugokudb study-20150131
 
簡単!AWRをEXCELピボットグラフで分析しよう♪
簡単!AWRをEXCELピボットグラフで分析しよう♪簡単!AWRをEXCELピボットグラフで分析しよう♪
簡単!AWRをEXCELピボットグラフで分析しよう♪
 
JSONBはPostgreSQL9.5でいかに改善されたのか
JSONBはPostgreSQL9.5でいかに改善されたのかJSONBはPostgreSQL9.5でいかに改善されたのか
JSONBはPostgreSQL9.5でいかに改善されたのか
 
20160121 データサイエンティスト協会 木曜セミナー #5
20160121 データサイエンティスト協会 木曜セミナー #520160121 データサイエンティスト協会 木曜セミナー #5
20160121 データサイエンティスト協会 木曜セミナー #5
 
問合せ最適化インサイド
問合せ最適化インサイド問合せ最適化インサイド
問合せ最適化インサイド
 
PostgreSQL:行数推定を読み解く
PostgreSQL:行数推定を読み解くPostgreSQL:行数推定を読み解く
PostgreSQL:行数推定を読み解く
 

Similar to PostgreSQL 10 新機能 @オープンセミナー香川 2017

Fess/Elasticsearchを使った業務で使える?全文検索への道
Fess/Elasticsearchを使った業務で使える?全文検索への道Fess/Elasticsearchを使った業務で使える?全文検索への道
Fess/Elasticsearchを使った業務で使える?全文検索への道Shinsuke Sugaya
 
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回Naoyuki Yamada
 
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!Shohei Okada
 
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)Hiroaki KOBAYASHI
 
【18-C-4】Google App Engine - 無限の彼方へ
【18-C-4】Google App Engine - 無限の彼方へ【18-C-4】Google App Engine - 無限の彼方へ
【18-C-4】Google App Engine - 無限の彼方へDevelopers Summit
 
Spring data-rest-and-spring-cloud-contract
Spring data-rest-and-spring-cloud-contractSpring data-rest-and-spring-cloud-contract
Spring data-rest-and-spring-cloud-contractTakeshi Ogawa
 
Apexコアデベロッパーセミナー070726 配布用
Apexコアデベロッパーセミナー070726 配布用Apexコアデベロッパーセミナー070726 配布用
Apexコアデベロッパーセミナー070726 配布用stomita
 
Salesforce DUG Japan Meetup#9(REST API, Metadata API etc)
Salesforce DUG Japan Meetup#9(REST API, Metadata API etc)Salesforce DUG Japan Meetup#9(REST API, Metadata API etc)
Salesforce DUG Japan Meetup#9(REST API, Metadata API etc)Takahiro Yonei
 
脱コピペ!デザイナーにもわかるPHPとWP_Query
脱コピペ!デザイナーにもわかるPHPとWP_Query脱コピペ!デザイナーにもわかるPHPとWP_Query
脱コピペ!デザイナーにもわかるPHPとWP_QueryHidekazu Ishikawa
 
Elasticsearchプラグインの作り方
Elasticsearchプラグインの作り方Elasticsearchプラグインの作り方
Elasticsearchプラグインの作り方Shinsuke Sugaya
 
Inside mobage platform
Inside mobage platformInside mobage platform
Inside mobage platformToru Yamaguchi
 
小さな開発会社でもできた、WordPress 新ビジネスの可能性 -WordCamp Kansai 2024-
小さな開発会社でもできた、WordPress 新ビジネスの可能性  -WordCamp Kansai 2024-小さな開発会社でもできた、WordPress 新ビジネスの可能性  -WordCamp Kansai 2024-
小さな開発会社でもできた、WordPress 新ビジネスの可能性 -WordCamp Kansai 2024-KojiMaruyama5
 
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015Mikiya Okuno
 
scala+liftで遊ぼう
scala+liftで遊ぼうscala+liftで遊ぼう
scala+liftで遊ぼうyouku
 
DB TechShowcase Tokyo - Intelligent Data Platform
DB TechShowcase Tokyo - Intelligent Data PlatformDB TechShowcase Tokyo - Intelligent Data Platform
DB TechShowcase Tokyo - Intelligent Data PlatformDaiyu Hatakeyama
 
T sql の parse と generator
T sql の parse と generatorT sql の parse と generator
T sql の parse と generatorOda Shinsuke
 
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京Koichiro Sasaki
 
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法decode2016
 
[東京] JapanSharePointGroup 勉強会 #2
[東京] JapanSharePointGroup 勉強会 #2[東京] JapanSharePointGroup 勉強会 #2
[東京] JapanSharePointGroup 勉強会 #2Atsuo Yamasaki
 

Similar to PostgreSQL 10 新機能 @オープンセミナー香川 2017 (20)

Fess/Elasticsearchを使った業務で使える?全文検索への道
Fess/Elasticsearchを使った業務で使える?全文検索への道Fess/Elasticsearchを使った業務で使える?全文検索への道
Fess/Elasticsearchを使った業務で使える?全文検索への道
 
データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回データマイニング+WEB勉強会資料第6回
データマイニング+WEB勉強会資料第6回
 
PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!PHP 2大 web フレームワークの徹底比較!
PHP 2大 web フレームワークの徹底比較!
 
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
仕事の手離れを良くする手段としての、静的検査のあるテンプレートエンジン (YATT::Lite talk at 2014 テンプレートエンジンNight)
 
【18-C-4】Google App Engine - 無限の彼方へ
【18-C-4】Google App Engine - 無限の彼方へ【18-C-4】Google App Engine - 無限の彼方へ
【18-C-4】Google App Engine - 無限の彼方へ
 
Spring data-rest-and-spring-cloud-contract
Spring data-rest-and-spring-cloud-contractSpring data-rest-and-spring-cloud-contract
Spring data-rest-and-spring-cloud-contract
 
Scala on Hadoop
Scala on HadoopScala on Hadoop
Scala on Hadoop
 
Apexコアデベロッパーセミナー070726 配布用
Apexコアデベロッパーセミナー070726 配布用Apexコアデベロッパーセミナー070726 配布用
Apexコアデベロッパーセミナー070726 配布用
 
Salesforce DUG Japan Meetup#9(REST API, Metadata API etc)
Salesforce DUG Japan Meetup#9(REST API, Metadata API etc)Salesforce DUG Japan Meetup#9(REST API, Metadata API etc)
Salesforce DUG Japan Meetup#9(REST API, Metadata API etc)
 
脱コピペ!デザイナーにもわかるPHPとWP_Query
脱コピペ!デザイナーにもわかるPHPとWP_Query脱コピペ!デザイナーにもわかるPHPとWP_Query
脱コピペ!デザイナーにもわかるPHPとWP_Query
 
Elasticsearchプラグインの作り方
Elasticsearchプラグインの作り方Elasticsearchプラグインの作り方
Elasticsearchプラグインの作り方
 
Inside mobage platform
Inside mobage platformInside mobage platform
Inside mobage platform
 
小さな開発会社でもできた、WordPress 新ビジネスの可能性 -WordCamp Kansai 2024-
小さな開発会社でもできた、WordPress 新ビジネスの可能性  -WordCamp Kansai 2024-小さな開発会社でもできた、WordPress 新ビジネスの可能性  -WordCamp Kansai 2024-
小さな開発会社でもできた、WordPress 新ビジネスの可能性 -WordCamp Kansai 2024-
 
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
What's New in MySQL 5.7 Optimizer @MySQL User Conference Tokyo 2015
 
scala+liftで遊ぼう
scala+liftで遊ぼうscala+liftで遊ぼう
scala+liftで遊ぼう
 
DB TechShowcase Tokyo - Intelligent Data Platform
DB TechShowcase Tokyo - Intelligent Data PlatformDB TechShowcase Tokyo - Intelligent Data Platform
DB TechShowcase Tokyo - Intelligent Data Platform
 
T sql の parse と generator
T sql の parse と generatorT sql の parse と generator
T sql の parse と generator
 
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
20160220 MSのビッグデータ分析基盤 - データマイニング+WEB@東京
 
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
DEV-010_エンプラ系業務 Web アプリ開発に効く! 実践的 SPA 型モダン Web アプリ開発の選択手法
 
[東京] JapanSharePointGroup 勉強会 #2
[東京] JapanSharePointGroup 勉強会 #2[東京] JapanSharePointGroup 勉強会 #2
[東京] JapanSharePointGroup 勉強会 #2
 

More from Shigeru Hanada

Foreign Data Wrapper Enhancements
Foreign Data Wrapper EnhancementsForeign Data Wrapper Enhancements
Foreign Data Wrapper EnhancementsShigeru Hanada
 
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会Shigeru Hanada
 
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会Shigeru Hanada
 
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 HiroshimaPostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 HiroshimaShigeru Hanada
 
OSS-DB Goldへの第一歩~実践!運用管理~
OSS-DB Goldへの第一歩~実践!運用管理~OSS-DB Goldへの第一歩~実践!運用管理~
OSS-DB Goldへの第一歩~実践!運用管理~Shigeru Hanada
 
PostgreSQL開発ことはじめ - 第27回しくみ+アプリケーション勉強会
PostgreSQL開発ことはじめ - 第27回しくみ+アプリケーション勉強会PostgreSQL開発ことはじめ - 第27回しくみ+アプリケーション勉強会
PostgreSQL開発ことはじめ - 第27回しくみ+アプリケーション勉強会Shigeru Hanada
 
9.3で進化した外部テーブル
9.3で進化した外部テーブル9.3で進化した外部テーブル
9.3で進化した外部テーブルShigeru Hanada
 
Extending PostgreSQL - PgDay 2012 Japan
Extending PostgreSQL - PgDay 2012 JapanExtending PostgreSQL - PgDay 2012 Japan
Extending PostgreSQL - PgDay 2012 JapanShigeru Hanada
 
PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012
PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012
PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012Shigeru Hanada
 
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@Kyoto
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@KyotoPostgreSQL 9.2 新機能 - OSC 2012 Kansai@Kyoto
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@KyotoShigeru Hanada
 

More from Shigeru Hanada (10)

Foreign Data Wrapper Enhancements
Foreign Data Wrapper EnhancementsForeign Data Wrapper Enhancements
Foreign Data Wrapper Enhancements
 
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
PostgreSQLのパラレル化に向けた取り組み@第30回(仮名)PostgreSQL勉強会
 
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
PostgreSQLのトラブルシューティング@第5回中国地方DB勉強会
 
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 HiroshimaPostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
PostgreSQLではじめるOSS開発@OSC 2014 Hiroshima
 
OSS-DB Goldへの第一歩~実践!運用管理~
OSS-DB Goldへの第一歩~実践!運用管理~OSS-DB Goldへの第一歩~実践!運用管理~
OSS-DB Goldへの第一歩~実践!運用管理~
 
PostgreSQL開発ことはじめ - 第27回しくみ+アプリケーション勉強会
PostgreSQL開発ことはじめ - 第27回しくみ+アプリケーション勉強会PostgreSQL開発ことはじめ - 第27回しくみ+アプリケーション勉強会
PostgreSQL開発ことはじめ - 第27回しくみ+アプリケーション勉強会
 
9.3で進化した外部テーブル
9.3で進化した外部テーブル9.3で進化した外部テーブル
9.3で進化した外部テーブル
 
Extending PostgreSQL - PgDay 2012 Japan
Extending PostgreSQL - PgDay 2012 JapanExtending PostgreSQL - PgDay 2012 Japan
Extending PostgreSQL - PgDay 2012 Japan
 
PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012
PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012
PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012
 
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@Kyoto
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@KyotoPostgreSQL 9.2 新機能 - OSC 2012 Kansai@Kyoto
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@Kyoto
 

PostgreSQL 10 新機能 @オープンセミナー香川 2017