今日(2月26日)オープンソースカンファレンス 2016 Tokyo/Springに行ってきて、
PostgreSQL9.5新機能紹介
を聞いてきた!その内容をメモメモ
■PostgreSQL9.5新機能紹介
資料:http://goo.gl/GoEBD8
自己紹介
PostgreSQL虎の巻
アジェンダ
・開発者が加えた新機能のうちのいくつか
大規模、運用簡単、アプリケーションを容易に、
注意点
先のバージョン
1.PostgreSQL概要
PostgreSQL9.5の歴史
1974年 Ingresプロジェクト:マイケルストーンブレーカー
1997 PostgreSQL6.0~:今の先祖、あーきかたまる
2016年1月 9.5
2016年2月 9.5。1(セキュリティパッチ)
今日説明しない
ユーティリティ
SQL文の新機能
パフォーマンスの向上
いままでは、機能を足していたが、今回は大幅パフォーマンス向上
ソート処理の高速化
集計関数の高速化
トランザクション
ロック範囲縮小:マルチプロセッサでスループット向上
2.大規模環境
BRIN(Block Range Index) Index
B-Treeインデックス:範囲検索、インデックス作成に時間、ストレージ容量
BRIN:ブロックレンジ:ストレージ要領小、B-treeより速くはないが、フルスキャンより速い
→最大値、最小値を持っている
時系列データ
Create FOREIGN TABLE INHERITS:複数テーブルを1つに見える
パーティション機能がない:親子関係、制約で振り分けはできる
MySQLふぇでれーテッド、Oracle:データベースリンク
→集計処理、Order by→ローカル実行(全データが飛んでくる)
SELECT TABLESAMPLE 散布リンク検索
分析用データベース
サンプリング方法:システム、ベルヌーイ
システム:ブロック単位、ベルヌーイ:レコード単位
→標準にそっているIBM DB2
3.運用を簡単に
pg_rewind
レプリケーション環境の再同期
復活した時
9.4までは、データコピーしてレプリケーション作りなおし
9.5から差分更新(分岐されたところにRewind)
4.アプリケーション開発を容易にする機能
SQLの拡張
INSERT ON CONFLICT DO UPDATE( DO NOTHING )
マージ、デュプリケートキ―
→制約違反が起こったら、UPDATEまたはなにもしない
→トリガー
マニュアルに書いてないが、中途半端に動く
Row Level Security:
タプル単位のアクセス制御
→GRANT文によるアクセス制御→テーブル、列単位
バーチャルプライベートDBと同じ
テーブルに対してローレベルセキュリティすること線がん
ポリシーの作成
UPDATE SET
複数列の同時更新
SELECT SKIP LOCKED
GROUPING SETS /CUBE /ROLLUP
→ないのがMySQLぐらいになった
JSONとJSONBが利用できる
→最近はJSONB型に機能拡張
PL/pgSQLASSERT
ストアドプロしジャーでアサーション
5.注意点
・ALTER TABLE SET UNLOGGED/LOGGED
トランザクションログの書き込み→書き込み
切り替えられる(内部実装今一つ:古いほうを消しているだけ)
・優先順位の変更
演算子の優先順位変更→SQL標準に準拠するための変更
→わかるためには、SET operator_recedence_warning = ON
(デフォルトOFF)
・パラメーター増えてるけど、減ったのもある:checkpoint_segments廃止
・パッケージの変更:Contribからbinへ
6.PostgreSQL10?
・パラレルスキャン、パラレルジョイン
7.まとめ
PostgreSQL9.5新機能紹介
を聞いてきた!その内容をメモメモ
■PostgreSQL9.5新機能紹介
資料:http://goo.gl/GoEBD8
自己紹介
PostgreSQL虎の巻
アジェンダ
・開発者が加えた新機能のうちのいくつか
大規模、運用簡単、アプリケーションを容易に、
注意点
先のバージョン
1.PostgreSQL概要
PostgreSQL9.5の歴史
1974年 Ingresプロジェクト:マイケルストーンブレーカー
1997 PostgreSQL6.0~:今の先祖、あーきかたまる
2016年1月 9.5
2016年2月 9.5。1(セキュリティパッチ)
今日説明しない
ユーティリティ
SQL文の新機能
パフォーマンスの向上
いままでは、機能を足していたが、今回は大幅パフォーマンス向上
ソート処理の高速化
集計関数の高速化
トランザクション
ロック範囲縮小:マルチプロセッサでスループット向上
2.大規模環境
BRIN(Block Range Index) Index
B-Treeインデックス:範囲検索、インデックス作成に時間、ストレージ容量
BRIN:ブロックレンジ:ストレージ要領小、B-treeより速くはないが、フルスキャンより速い
→最大値、最小値を持っている
時系列データ
Create FOREIGN TABLE INHERITS:複数テーブルを1つに見える
パーティション機能がない:親子関係、制約で振り分けはできる
MySQLふぇでれーテッド、Oracle:データベースリンク
→集計処理、Order by→ローカル実行(全データが飛んでくる)
SELECT TABLESAMPLE 散布リンク検索
分析用データベース
サンプリング方法:システム、ベルヌーイ
システム:ブロック単位、ベルヌーイ:レコード単位
→標準にそっているIBM DB2
3.運用を簡単に
pg_rewind
レプリケーション環境の再同期
復活した時
9.4までは、データコピーしてレプリケーション作りなおし
9.5から差分更新(分岐されたところにRewind)
4.アプリケーション開発を容易にする機能
SQLの拡張
INSERT ON CONFLICT DO UPDATE( DO NOTHING )
マージ、デュプリケートキ―
→制約違反が起こったら、UPDATEまたはなにもしない
→トリガー
マニュアルに書いてないが、中途半端に動く
Row Level Security:
タプル単位のアクセス制御
→GRANT文によるアクセス制御→テーブル、列単位
バーチャルプライベートDBと同じ
テーブルに対してローレベルセキュリティすること線がん
ポリシーの作成
UPDATE SET
複数列の同時更新
SELECT SKIP LOCKED
GROUPING SETS /CUBE /ROLLUP
→ないのがMySQLぐらいになった
JSONとJSONBが利用できる
→最近はJSONB型に機能拡張
PL/pgSQLASSERT
ストアドプロしジャーでアサーション
5.注意点
・ALTER TABLE SET UNLOGGED/LOGGED
トランザクションログの書き込み→書き込み
切り替えられる(内部実装今一つ:古いほうを消しているだけ)
・優先順位の変更
演算子の優先順位変更→SQL標準に準拠するための変更
→わかるためには、SET operator_recedence_warning = ON
(デフォルトOFF)
・パラメーター増えてるけど、減ったのもある:checkpoint_segments廃止
・パッケージの変更:Contribからbinへ
6.PostgreSQL10?
・パラレルスキャン、パラレルジョイン
7.まとめ