Submit Search
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
1 like
7,022 views
N
NTT DATA Technology & Innovation
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る (第32回 中国地方DB勉強会 in 岡山 発表資料) 2023年10月7日(土) NTTデータグループ 技術開発本部 小林 隆浩
Technology
Read more
1 of 44
1
2
3
4
5
6
7
8
9
10
11
12
Most read
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
Most read
40
41
42
Most read
43
44
More Related Content
What's hot
(20)
PPTX
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
NTT DATA Technology & Innovation
PDF
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
PDF
PostgreSQL 15の新機能を徹底解説
Masahiko Sawada
PDF
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
NTT DATA Technology & Innovation
PDF
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
Preferred Networks
PDF
アーキテクチャから理解するPostgreSQLのレプリケーション
Masahiko Sawada
PPTX
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PDF
細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive
Toru Makabe
PPTX
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
NTT DATA Technology & Innovation
PPTX
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PDF
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PPTX
Dockerからcontainerdへの移行
Akihiro Suda
PDF
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
PDF
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
PDF
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
NTT DATA Technology & Innovation
PDF
PostgreSQL16でのロールに関する変更点(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PDF
2025年現在のNewSQL (最強DB講義 #36 発表資料)
NTT DATA Technology & Innovation
PPTX
トランザクションの設計と進化
Kumazaki Hiroki
PPTX
トランザクションをSerializableにする4つの方法
Kumazaki Hiroki
PDF
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PostgreSQLのロール管理とその注意点(Open Source Conference 2022 Online/Osaka 発表資料)
NTT DATA Technology & Innovation
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
NTT DATA Technology & Innovation
PostgreSQL 15の新機能を徹底解説
Masahiko Sawada
PostgreSQL13でのpg_basebackupの改善について(第13回PostgreSQLアンカンファレンス@オンライン)
NTT DATA Technology & Innovation
わかる!metadata.managedFields / Kubernetes Meetup Tokyo 48
Preferred Networks
アーキテクチャから理解するPostgreSQLのレプリケーション
Masahiko Sawada
PostgreSQLのfull_page_writesについて(第24回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
細かすぎて伝わらないかもしれない Azure Container Networking Deep Dive
Toru Makabe
CloudNativePGを動かしてみた! ~PostgreSQL on Kubernetes~(第34回PostgreSQLアンカンファレンス@オンライ...
NTT DATA Technology & Innovation
VSCodeで作るPostgreSQL開発環境(第25回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PostgreSQL16新機能紹介 - libpq接続ロード・バランシング(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
Dockerからcontainerdへの移行
Akihiro Suda
PGOを用いたPostgreSQL on Kubernetes入門(PostgreSQL Conference Japan 2022 発表資料)
NTT DATA Technology & Innovation
Grafana LokiではじめるKubernetesロギングハンズオン(NTT Tech Conference #4 ハンズオン資料)
NTT DATA Technology & Innovation
実践!OpenTelemetry と OSS を使った Observability 基盤の構築(CloudNative Days Tokyo 2022 発...
NTT DATA Technology & Innovation
PostgreSQL16でのロールに関する変更点(第41回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
2025年現在のNewSQL (最強DB講義 #36 発表資料)
NTT DATA Technology & Innovation
トランザクションの設計と進化
Kumazaki Hiroki
トランザクションをSerializableにする4つの方法
Kumazaki Hiroki
統計情報のリセットによるautovacuumへの影響について(第39回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
Similar to 最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
(20)
PDF
PostgreSQL 9.6 新機能紹介
Masahiko Sawada
PDF
JTF2021w F3 postgresql frontline
Haruka Takatsuka
PDF
Postgre sql update_20170310
Haruka Takatsuka
PPTX
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
NTT DATA Technology & Innovation
PDF
PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介
Insight Technology, Inc.
PDF
PostgreSQL15 新機能紹介
Satoshi Hirata
PPTX
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
NTT DATA Technology & Innovation
PDF
Chugoku db 17th-postgresql-9.6
Toshi Harada
PDF
PostgreSQL13 新機能紹介
Satoshi Hirata
PPTX
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PDF
10大ニュースで振り返るPGCon2015
NTT DATA OSS Professional Services
PDF
PostgreSQL10徹底解説
Masahiko Sawada
PPTX
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
NTT DATA Technology & Innovation
PDF
PostgreSQLの運用・監視にまつわるエトセトラ
NTT DATA OSS Professional Services
PDF
Incoming PostgreSQL 9.4 次バージョンの新機能をご紹介
Ryuichiro Munechika
PPTX
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PDF
Hackers Champloo 2016 postgresql-9.6
Toshi Harada
PDF
Kof2016 postgresql-9.6
Toshi Harada
PDF
PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012
Shigeru Hanada
ODP
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@Kyoto
Shigeru Hanada
PostgreSQL 9.6 新機能紹介
Masahiko Sawada
JTF2021w F3 postgresql frontline
Haruka Takatsuka
Postgre sql update_20170310
Haruka Takatsuka
PostgreSQL 12は ここがスゴイ! ~性能改善やpluggable storage engineなどの新機能を徹底解説~ (NTTデータ テクノ...
NTT DATA Technology & Innovation
PostgreSQLの新バージョン -PostgreSQL9.4- のご紹介
Insight Technology, Inc.
PostgreSQL15 新機能紹介
Satoshi Hirata
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
NTT DATA Technology & Innovation
Chugoku db 17th-postgresql-9.6
Toshi Harada
PostgreSQL13 新機能紹介
Satoshi Hirata
PostgreSQLのgitレポジトリから見える2021年の開発状況(第30回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
10大ニュースで振り返るPGCon2015
NTT DATA OSS Professional Services
PostgreSQL10徹底解説
Masahiko Sawada
押さえておきたい、PostgreSQL 13 の新機能!! (PostgreSQL Conference Japan 2020講演資料)
NTT DATA Technology & Innovation
PostgreSQLの運用・監視にまつわるエトセトラ
NTT DATA OSS Professional Services
Incoming PostgreSQL 9.4 次バージョンの新機能をご紹介
Ryuichiro Munechika
PostgreSQL14の pg_stat_statements 改善(第23回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
Hackers Champloo 2016 postgresql-9.6
Toshi Harada
Kof2016 postgresql-9.6
Toshi Harada
PostgreSQL 9.2 新機能 - 新潟オープンソースセミナー2012
Shigeru Hanada
PostgreSQL 9.2 新機能 - OSC 2012 Kansai@Kyoto
Shigeru Hanada
Ad
More from NTT DATA Technology & Innovation
(20)
PDF
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
NTT DATA Technology & Innovation
PDF
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
NTT DATA Technology & Innovation
PDF
つくって壊して直して学ぶ Database on Kubernetes (CloudNative Days Summer 2025 発表資料)
NTT DATA Technology & Innovation
PDF
Java in Japan: A Journey of Community, Culture, and Global Integration (JavaO...
NTT DATA Technology & Innovation
PDF
Unveiling the Hidden Layers of Java Class Files: Beyond Bytecode (Devnexus 2025)
NTT DATA Technology & Innovation
PDF
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PDF
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
PDF
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
PDF
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
PDF
pgbenchのスレッドとクライアント (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PDF
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PDF
ストリーム処理はデータを失うから怖い?それ、何とかできますよ! 〜Apahe Kafkaを用いたストリーム処理における送達保証〜 (Open Source...
NTT DATA Technology & Innovation
PDF
生成AI時代のPostgreSQLハイブリッド検索 (第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PDF
DAIS2024参加報告 ~Spark中心にしらべてみた~ (JEDAI DAIS Recap 講演資料)
NTT DATA Technology & Innovation
PDF
PostgreSQLのHTAP適応について考える (PostgreSQL Conference Japan 2024 講演資料)
NTT DATA Technology & Innovation
PDF
静かに変わってきたクラスファイルを詳細に調べて楽しむ(JJUG CCC 2024 Fall講演資料)
NTT DATA Technology & Innovation
PDF
Gartnerも注目するグリーンソフトウェアの実現に向けて (Green Software Foundation Global Summit 2024 T...
NTT DATA Technology & Innovation
PDF
パーティションのATTACH時の注意ポイント (第49回PostgreSQLアンカンファレンス@東京 発表資料)
NTT DATA Technology & Innovation
PDF
PostgreSQL17対応版 EXPLAINオプションについて (第49回PostgreSQLアンカンファレンス@東京 発表資料)
NTT DATA Technology & Innovation
PDF
B-Treeのアーキテクチャ解説 (第49回PostgreSQLアンカンファレンス@東京 発表資料)
NTT DATA Technology & Innovation
PGConf.dev 2025 参加レポート (JPUG総会併設セミナー2025 発表資料)
NTT DATA Technology & Innovation
Can We Use Rust to Develop Extensions for PostgreSQL? (POSETTE: An Event for ...
NTT DATA Technology & Innovation
つくって壊して直して学ぶ Database on Kubernetes (CloudNative Days Summer 2025 発表資料)
NTT DATA Technology & Innovation
Java in Japan: A Journey of Community, Culture, and Global Integration (JavaO...
NTT DATA Technology & Innovation
Unveiling the Hidden Layers of Java Class Files: Beyond Bytecode (Devnexus 2025)
NTT DATA Technology & Innovation
論理レプリケーションのアーキテクチャ (第52回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
実はアナタの身近にある!? Linux のチェックポイント/レストア機能 (NTT Tech Conference 2025 発表資料)
NTT DATA Technology & Innovation
Apache Sparkに対するKubernetesのNUMAノードを意識したリソース割り当ての性能効果 (Open Source Conference ...
NTT DATA Technology & Innovation
PostgreSQL最新動向 ~カラムナストアから生成AI連携まで~ (Open Source Conference 2025 Tokyo/Spring ...
NTT DATA Technology & Innovation
pgbenchのスレッドとクライアント (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
PostgreSQLのgitレポジトリから見える2024年の開発状況 (第51回 PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
ストリーム処理はデータを失うから怖い?それ、何とかできますよ! 〜Apahe Kafkaを用いたストリーム処理における送達保証〜 (Open Source...
NTT DATA Technology & Innovation
生成AI時代のPostgreSQLハイブリッド検索 (第50回PostgreSQLアンカンファレンス@オンライン 発表資料)
NTT DATA Technology & Innovation
DAIS2024参加報告 ~Spark中心にしらべてみた~ (JEDAI DAIS Recap 講演資料)
NTT DATA Technology & Innovation
PostgreSQLのHTAP適応について考える (PostgreSQL Conference Japan 2024 講演資料)
NTT DATA Technology & Innovation
静かに変わってきたクラスファイルを詳細に調べて楽しむ(JJUG CCC 2024 Fall講演資料)
NTT DATA Technology & Innovation
Gartnerも注目するグリーンソフトウェアの実現に向けて (Green Software Foundation Global Summit 2024 T...
NTT DATA Technology & Innovation
パーティションのATTACH時の注意ポイント (第49回PostgreSQLアンカンファレンス@東京 発表資料)
NTT DATA Technology & Innovation
PostgreSQL17対応版 EXPLAINオプションについて (第49回PostgreSQLアンカンファレンス@東京 発表資料)
NTT DATA Technology & Innovation
B-Treeのアーキテクチャ解説 (第49回PostgreSQLアンカンファレンス@東京 発表資料)
NTT DATA Technology & Innovation
Ad
Recently uploaded
(8)
PDF
20250630_aws_reinforce_2025_aws_sheild_network_security_director
uedayuki
PDF
go tool と Minimal Version Selection アルゴリズム
Keisuke Ishigami
PPTX
オープンソース界隈の利用者や技術者から見たオープンソースEDAとは? What is open source EDA from the perspecti...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
PDF
2023年版Web3技術の理想と現実
Syuhei Hiya
PDF
生成AIパネルトーク(Interop25Tokyo APPS JAPAN M1-07,M2-07 嶋ポジショントーク)
嶋 是一 (Yoshikazu SHIMA)
PDF
SIG-AUDIO 2025 Vol.02 オンラインセミナー SIG-Audioプレゼン資料_オーディオプラグイン開発_塩澤達矢.pdf
IGDA Japan SIG-Audio
PPTX
新卒・中途採用者向け採用ピッチ資料2025年7月版(20250702).pptx
Official74
PDF
AIツールを使った研究の効率化 Improving Research Efficiency with AI Tools
Tohoku University
20250630_aws_reinforce_2025_aws_sheild_network_security_director
uedayuki
go tool と Minimal Version Selection アルゴリズム
Keisuke Ishigami
オープンソース界隈の利用者や技術者から見たオープンソースEDAとは? What is open source EDA from the perspecti...
Industrial Technology Research Institute (ITRI)(工業技術研究院, 工研院)
2023年版Web3技術の理想と現実
Syuhei Hiya
生成AIパネルトーク(Interop25Tokyo APPS JAPAN M1-07,M2-07 嶋ポジショントーク)
嶋 是一 (Yoshikazu SHIMA)
SIG-AUDIO 2025 Vol.02 オンラインセミナー SIG-Audioプレゼン資料_オーディオプラグイン開発_塩澤達矢.pdf
IGDA Japan SIG-Audio
新卒・中途採用者向け採用ピッチ資料2025年7月版(20250702).pptx
Official74
AIツールを使った研究の効率化 Improving Research Efficiency with AI Tools
Tohoku University
最新機能までを総ざらい!PostgreSQLの注目機能を振り返る(第32回 中国地方DB勉強会 in 岡山 発表資料)
1.
© 2023 NTT
DATA Group Corporation - 最新機能までを総ざらい!- PostgreSQLの 注目機能を振り返る 2023/10/7 株式会社NTTデータグループ 小林 隆浩
2.
© 2023 NTT
DATA Group Corporation 3 アジェンダ 01. PostgreSQLリリースを振り返る(2021-2023) 02. PostgreSQL v14の注目機能 03. PostgreSQL v15の注目機能 04. PostgreSQL v16の注目機能 05. まとめ (おまけ)各クラウドのバージョン対応状況
3.
© 2023 NTT
DATA Group Corporation 4 (セッションの注意事項) ⚫ PostgreSQL各バージョンの新機能全てを網羅した内容ではありません。 ⚫ 全て知りたいという方は、以下を調べましょう。 ⚫ 公式リリースノート ⚫ SRA OSS Tech Blog 「PostgreSQL 14/15/16 検証報告」 ⚫ 篠田の虎の巻 「PostgreSQL 14/15/16 新機能検証結果」 各バージョンのリンクは、Let’s POSTGRESにまとまっています。 PostgreSQL14の新機能 | Let's POSTGRES PostgreSQL15の新機能 | Let's POSTGRES PostgreSQL16の新機能 | Let's POSTGRES
4.
© 2023 NTT
DATA Group Corporation 5 01. PostgreSQLリリースを振り返る (2021-2023) 5
5.
© 2023 NTT
DATA Group Corporation 6 サマリ:各バージョンの新機能 v15 (2022年) v16 (2023年) ①SQL ②ロジカル レプリケーション ③性能改善 ④バックアップ ⑤モニタリング ⑥ロール • publicスキーマの権限変更 • MERGE • REGEXP系 • 行/列フィルタ • lsn指定の同期スキップ • エラー時の無効化 • NOT INや外部ソート • ¥copyの改善 • archive_module • WAL/ pg_basebackup圧縮 • pg_stat_subscription_stats • JSON形式のログ • pg_checkpoint • JSON関数、IS JSON • ANY_VALUE • libpq接続ロードバランシング • スタンバイからレプリケーション • パラレル適用 • 双方向 • パラレルクエリ、インクリメンタ ルソートの拡張 • pg_dump圧縮(lz4/zstd) • pg_stat_io • pg_create_subscription • pg_use_reserved_connections v14 (2021年) • SEARCH/CYCLE • postgres_fdw • ストリーム送信 • バイナリ転送 • Memoize • Bottom-up Index Deletion • VACUUM改善 • pg_stat_wal • pg_stat_progress_copy • pg_read/write_all_data
6.
© 2023 NTT
DATA Group Corporation 7 02. PostgreSQL v14の注目機能 7
7.
© 2023 NTT
DATA Group Corporation 8 紹介する新機能(PostgreSQL v14) ①新しいSQL(関数など) ②ロジカルレプリケーションの拡張 ③性能改善 ④WALやバックアップ関連の改善 ⑤モニタリング関連 ⑥ロールの追加等 v14
8.
© 2023 NTT
DATA Group Corporation 9 ①新しいSQL(関数等) ⚫ SEARCH句とCYCLE句 ✓ グラフのデータ構造に対して再帰的な問い合わせが シンプルに書けるように。 ✓ SEARCHで探索順序(幅優先/深さ優先)を 指定でき、CYCLEで循環参照の検出が可能。 ⚫ パーティションデタッチ時のロック軽減 ✓ ALTER TABLE … DETACH PARTITION CONCURRENTLY ✓ AccessExclusiveLockを取らなくなる。 v14 1 2 3 5 4
9.
© 2023 NTT
DATA Group Corporation 10 ①新しいSQL(関数等) - postgres_fdw - ⚫ 外部テーブルのTRUNCATE ✓ truncatableオプションを指定可能、デフォルトはtrue ⚫ 外部テーブルの非同期スキャン ⚫ async_capableオプションで指定可能、デフォルトはfalse ⚫ Async Foreign Scanが同時並行で実行される。 ⚫ 外部テーブルの一括コピー ✓ batch_sizeで指定可能、デフォルトは1 ✓ 大量挿入時に1行ずつINSERT文が送信されていたが、これをまとめるように。 v14
10.
© 2023 NTT
DATA Group Corporation 11 ②ロジカルレプリケーションの拡張 - streaming - ⚫ ストリーム送信 ✓ 13以前はパブリッシャ側でファイルに書き込み、コミットで送信(大量変更時の性能↓) ✓ WITH (streaming = on)でコミットを待たずに順次変更を送信 v14 WALsender Apply Worker デコード結果を保持 メモリの制限を超えると デコードされた変更を ストリーミングで送信 残りの変更を送信 適用した変更のCOMMIT 変更を一時ファイル(changes) に書き込む 変更を読み取り適用 パブリッシャ サブスクライバ
11.
© 2023 NTT
DATA Group Corporation 12 ②ロジカルレプリケーションの拡張 - その他 - ⚫ 初期同期時の更新を複数トランザクション化 ✓ 13以前、「初期コピー」と「初期コピー中の他の更新」が単一トランザクション ⇒ロングトラン化する。更にエラーで全てロールバックされてしまい、やり直しが発生。 ✓ 上記が分離され、初期コピー完了後にデータ参照可。その後、他の更新を同期。 ⚫ バイナリ転送 ✓ CREATE PUBLICATIONでWITH (binary = on)を指定して、バイナリ転送が可能に。 ✓ timestamp型やbytea型など一部で性能改善が見込まれる。 v14
12.
© 2023 NTT
DATA Group Corporation 13 Memoizeの キャッシュ (バックエンドプロセス内) ③性能改善 - Memoize - ⚫ Nested Loopで一部のケースをキャッシュを使って、性能を改善する ✓ enable_memoizeで制御できる(デフォルトon) 例)以下で FROM Tbl1 JOIN ON Tbl2 Tbl1.key = Tbl2.key Tbl1のkey1のカーディナリティが低く、Tbl2のkeyのカーディナリティは高いケースで有効。 Memoizeなしの場合、Tbl1の1行ごとにTbl2をIndex Scanして結合するが件数が増えるとオーバーヘッド大。 v14 Memoizeをもっと詳しく知りたい方は、第41回PGアンカンファレンスの「Memoizeの仕組み」 by 笠原さんを参照してください。 Tbl1 1 1 ... … key1 2 … 2 … Tbl2 1 2 ... … 3 … 4 … 1 2 ... … key1 通常は初回にキャッシュ、 キャッシュされたレコードは Tbl2を参照しない
13.
© 2023 NTT
DATA Group Corporation 14 ③性能改善 - Bottom-up Index Deletion - ⚫ B-Treeインデックスの肥大化抑止 ✓ インデックスのタプル削除+重複削除(v13)+Bottom-up Index Deletion ✓ インデックスのページ分割を防ぐ (HOTは上記の対象外。肥大化を防ぐために、まずはHOTを考えよう。) v14 Table1 Index1 Index2 X Y 100 100 ... … 100 100 X Y ①Index2の対象列を更新 ※HOTではない ②’ こちらにも タプルが追加される ② 新しいタプルが 追加される ③不要なインデックスタプルを 積極的に削除する
14.
© 2023 NTT
DATA Group Corporation 15 ③性能改善 ⚫ パラレルクエリの拡張 ✓ REFRESH MATERIALIZED VIEW が並列問い合わせを実行可能に。 ⚫ VACUUMコマンドの改善 ✓ INDEX_CLEANUP=auto(デフォルト)で、処理が長くなる事の多いインデックスの Vacuumが(必要に応じて)スキップされる。 ✓ Failsafeモードが導入され、XID周回が近づいた際にFreeze以外の処理をスキップ。 v14
15.
© 2023 NTT
DATA Group Corporation 16 ⑤モニタリング関連 ⚫ pg_stat_wal ✓ WALの生成と書き込みに関する情報を表示 ⚫ pg_stat_progress_copy ✓ COPYコマンドの進捗状況を確認 ⚫ pg_stats_ext_expr ✓ 式を使った拡張統計の情報を表示 ⚫ トランザクション周回の警告閾値が変更 ⚫ log_autovacuum_min_durationにインデックスの詳細情報が出るように v14
16.
© 2023 NTT
DATA Group Corporation 17 ⑥ロールの追加等 ⚫ 3つのロールが追加された。 v14 ロール名 概要 pg_database_owner データベース所有者で構成される pg_read_all_data 全スキーマのテーブル、ビュー、シーケンスを参照できる。 スキーマのUSAGE権限、オブジェクトのSELECT権限に相当。 pg_write_all_data 全スキーマのテーブル、ビュー、シーケンスを参照できる。 スキーマのUSAGE権限、オブジェクトのINSERT、UPDATE、 DELETE権限に相当。
17.
© 2023 NTT
DATA Group Corporation 18 03. PostgreSQL v15の注目機能 1
18.
© 2023 NTT
DATA Group Corporation 19 紹介する新機能(PostgreSQL v15) ①新しいSQL(関数など) ②ロジカルレプリケーションの拡張 ③性能改善 ④WALやバックアップ関連の改善 ⑤モニタリング関連 ⑥ロールの追加等 v15
19.
© 2023 NTT
DATA Group Corporation 20 ①新しいSQL(関数等) - 注意すべき変更 - ⚫ publicスキーマに対するCREATE、USAGE権限を削除 ✓ セキュリティ対応(CVE-2018-1058) ✓ 15からはpublicスキーマへのアクセスは、pg_database_ownerが必要 (基本的にスーパーユーザとデータベース所有者) ✓ 14以前からのデータベースをリストアした際にも適用される ⇒バージョンアップ時に注意 v15
20.
© 2023 NTT
DATA Group Corporation 21 ①新しいSQL(関数等) - MERGE - ⚫ 条件に応じて、INSERT/UPDATE/DELETEを単一SQLで実行 ✓ MERGE INTO テーブル名 USING 結合元テーブル ON 結合条件 WHEN MATCHED 条件 THEN UPDATE SET … / DELETE / DO NOTHING WHEN NOT MATCHED INSERT VALUES … / DO NOTHING ✓ 結合条件にマッチした場合 ⇒ UPDATE / DELETE / 何もしない ✓ 結合条件にマッチしなかった場合 ⇒ INSERT / 何もしない v15
21.
© 2023 NTT
DATA Group Corporation 22 (補足)MERGEとそれまでのINSERT文の違い ⚫ 他のUPSERT方法である、INSERT … ON CONFLICTとの違い ✓ MERGEは、対象テーブルを外部結合し、結果行についてUPDATE/INSERT ✓ INSERT ... ON CONFLICTは、まずINSERTして重複で失敗したものについて UPDATEを行う。 ✓ INSERT INTO テーブル名 VALUES (…) ON CONFLICT (制約名) DO UPDATE SET c1 = EXCLUDED.c1 , c2 = EXCLUDED.c2; ✓ 実行時の性能特性も異なる。 v15
22.
© 2023 NTT
DATA Group Corporation 23 ①新しいSQL(関数等) - その他 - ⚫ REGEXP_で始まる5つの関数の追加 関数 出力結果 REGEXP_COUNT パターンにマッチする個数 REGEXP_INSTR パターンにマッチする位置 (引数で開始位置/終了のどちらかを指定) REGEXP_LIKE パターンにマッチすればtrue、そうでなければfalse REGEXP_SUBSTR パターンにマッチした文字列 REGEXP_REPLACE パターンにマッチした部分を置換して返す (15で対象範囲の指定を引数で可能になった) ⚫ 集約関数RANGE_AGGの追加 ✓ 複数行の範囲型データ(int4range等)を多重範囲型に集約 v15
23.
© 2023 NTT
DATA Group Corporation 24 Schema1 ②ロジカルレプリケーションの拡張 ⚫ PUBLICATIONの対象をスキーマ単位で指定したり、列/行でフィルタ可能に。 ⚫ サブスクライバでスキップ(LSN指定)したり、エラー時の無効化が可能に。 v15 Schema1 エラー発生時に該当更新の同期を $ ALTER SUBSCRIPTION ... SKIP (LSN=‘lsnの値’) でスキップが可能。 また、SUBSCRIPTIONに disable_on_error=true を指定して、エラー時に無効化する 設定が可能。 パブリッシャ サブスクライバ Table1 1 Table2 Table1 Table2 PUBLICATION で行を指定 PUBLICATION で列を指定 スキーマ一括で PUBLICATION指定も可
24.
© 2023 NTT
DATA Group Corporation 25 ③性能改善 ⚫ NOT IN句の改善 ✓ 内部でハッシュテーブルを使うように変更された(実行計画は変化なし) ⚫ ソート性能の改善 ✓ 外部ソート(Sort Method: external merge)のアルゴリズム変更 ⚫ ウィンドウ関数の改善 ✓ ROW_NUMBER、RANK、COUNTで一部の実行計画を改善 ⚫ ¥copy fromの改善 ✓ 1行単位のCopyDataメッセージをまとめることで改善 v15
25.
© 2023 NTT
DATA Group Corporation 26 ④WALやバックアップ関連 ⚫ WAL関連の改善 ✓ モジュールによるアーカイブが可能に。 ✓ archive_libraryでモジュール名を指定。 ✓ archive_commandよりも柔軟性の高いアーカイブが可能になった。 ✓ 15時点で優先度はarchive_library > archive_command ✓ WAL圧縮でzstd/lz4が指定可能に。 ✓ configureで、--with-zstd/--with-lz4が必要。 ✓ wal_compressionは、pglz/zstd/lz4/on(=pglz)/offを指定可能。 ⚫ pg_basebackupの改善 ✓ --compressオプションで圧縮が可能、形式(gzip/zstd/lz4)とレベルを指定。 ✓ --targetオプションでバックアップの取得先をclientやserverで選べる。ちなみに blackholeも指定でき、この場合バックアップは取られない。 v15
26.
© 2023 NTT
DATA Group Corporation 27 ⑤モニタリング関連 ⚫ pg_stat_subscription_statsの追加 ✓ ロジカルレプリケーションの同期エラーを表示 ✓ サブスクリプションごとに1行、初期同期と更新適用の失敗がカウントされる ⚫ pg_ident_file_mappingsの追加 ✓ pg_ident.confの内容を表示 ⚫ JSON形式でログ出力が可能に ✓ log_destinataion=jsonlogが指定可能になった ✓ 従来のstderr/csvlog/syslogは変わらず ⚫ log_checkpointのデフォルト値変更 ✓ 14以前はデフォルトoff、15からデフォルトがonになった v15
27.
© 2023 NTT
DATA Group Corporation 28 ⑥ロールの追加等 ⚫ 以下のロールが追加された。 ロール名 概要 pg_checkpoint CHECKPOINTのコマンドが実行可能 v15
28.
© 2023 NTT
DATA Group Corporation 29 04. PostgreSQL v16の注目機能 2
29.
© 2023 NTT
DATA Group Corporation 30 紹介する新機能(PostgreSQL v16) ①新しいSQL(関数など) ②ロジカルレプリケーションの拡張 ③性能改善 ④WALやバックアップ関連の改善 ⑤モニタリング関連 ⑥ロールの追加等 v16
30.
© 2023 NTT
DATA Group Corporation 31 ①新しいSQL(関数等) - JSON関連 - ⚫ JSON関連の機能追加 関数 変換元 変換先 JSON_OBJECT テキスト配列 JSONオブジェクト JSON_OBJECTAGG 複数行のデータ(SELECT結果等) JSONオブジェクト JSON_ARRAY スカラ値やJSONデータ JSON配列 JSON_ARRAYAGG 複数行のデータ JSON配列 述語 判定内容 (true/false) IS JSON JSONとして解釈できるか IS JSON ARRAY JSON配列として解釈できるか IS JSON OBJECT JSONオブジェクトとして解釈できるか IS JSON SCALAR JSONのスカラ値として解釈できるか v16
31.
© 2023 NTT
DATA Group Corporation 32 ①新しいSQL/構文 - その他 - ⚫ ANY_VALUE ✓ GROUP BYに含まれない列を集計関数を使わずに参照するとエラー。 ✓ 解消方法:GROUP BYに列を含める、またはMIN/MAX/ANY_VALUE ⚫ 数値リテラル ✓ 2/8/16進数を表現することが可能に。 ✓ (2進数)0b1001=9 (8進数)0o25=21 (16進数)0x32=50 ⚫ ICUロケールの拡張 ✓ 15以前はICUライブラリを照合順序で有効にするには、configure時に --with-icuが必要。 ✓ 16ではデフォルトで有効となり、除外する際に--without-icuが必要。 ✓ これまでのconfigureが通らないケースも発生するので注意。 v16
32.
© 2023 NTT
DATA Group Corporation 33 ①新しいSQL/構文 - libpqロードバランシング - ⚫ 複数ホストからランダムな接続が可能に ✓ 接続パラメータのload_balance_hosts=randomと、複数ホストのリストを指定。 ✓ デフォルトだとload_balance_hosts=disableで、ラウンドロビンになる。 ✓ psqlなどlibpqを使うアプリケーションで利用可能 v16 client psql “host=aaa,bbb,ccc load_balance_hosts=random” host=aaa host=bbb host=ccc 接続先をランダムに選択、 エラー時は別の接続を試す
33.
© 2023 NTT
DATA Group Corporation 34 ②ロジカルレプリケーションの拡張 - スタンバイからのレプリケーション - ⚫ ストリーミングレプリケーションのスタンバイを、パブリッシャーとして構成可能 プライマリ スタンバイ パブリッシャ パブリッシャ サブスクライバ ロジカル レプリケーション ストリーミング レプリケーション PUBLICATION SUBSCRIPTION PUBLICATION • PUBLICATIONはプライマリで作成 • pg_log_standby_snapshotでスタンバイへ のレプリケーションのスロットを即時反映 v16
34.
© 2023 NTT
DATA Group Corporation 35 ②ロジカルレプリケーションの拡張 - steaming = parallel - ⚫ 15以前でstreamingオプションはon/offだったが、parallelが追加 ✓ CREATE SUBSCRIPTION sub_1 CONNECTION ‘port=5432 dbname=pub_db’ PUBLICATION pub WITH (streaming = parallel); v16 WALsender Parallel Apply Worker Apply Worker デコード結果を保持 メモリの制限を超えると デコードされた変更を ストリーミングで送信 (これはおそらくv14同等) COMMIT時に全変更を 一度に送信 COMMITを指示 並列ワーカを 起動 変更を適用 メッセージ送信 max_parallel_apply_workers_per_subscriptionでワーカ数を指定 パブリッシャ サブスクライバ
35.
© 2023 NTT
DATA Group Corporation 36 テーブルA テーブルA ②ロジカルレプリケーションの拡張 - 双方向レプリケーション - ⚫ 15までは双方向レプリケーションをすると循環してしまっていた。 ⚫ 16から with (origin=none) が追加、双方向で更新が可能に。 ✓ 同一キーでの挿入など、衝突が起きるケースがある。 ✓ 衝突時は手動でスキップするなどの対応が必要。 v16 PUBLICATION SUBSCRIPTION PUBLICATION SUBSCRIPTION origin=none origin=none パブリッシャにoriginを持たない変更のみの送信を要求
36.
© 2023 NTT
DATA Group Corporation 37 ②ロジカルレプリケーションの拡張 - その他 - ⚫ 初期コピーでバイナリ形式が利用可に ✓ パブ/サブどちらも16以上 & サブスクリプションで with (binary = on) ✓ 初期データ移行もバイナリ形式で転送可 (15以前はテキスト形式のみ) ✓ 一部データ型が含まれる場合、所要時間が短縮されることがある。 ⚫ Primary Key以外のインデックスが利用可に ✓ replica identity fullを指定した際、15以前ではフルスキャン。 ✓ 16ではPrimary Key以外のインデックスを利用して、サブスクライバ側のデータ同期性 能が向上。 v16
37.
© 2023 NTT
DATA Group Corporation 38 ③性能改善 ⚫ パラレルクエリの拡張 ✓ right outer join/full outer joinでパラレルクエリをサポート。 ✓ 実行計画にParallel Hash Full Joinが登場するように 。 ✓ string_arg、array_argで集約処理の一部をパラレルに実行、実行計画上はPartial Aggregateが表示される。 ⚫ インクリメンタルソートの拡張 ✓ インクリメンタルソート自体は13で登場、インデックスを利用して一部のソートを高速化。 ディスクソートも避けられる。15まではSELECT DISTINCTは対象外。 ✓ 16からSELECT DISTINCTでも、Incremental Sortが使われるように。 v16
38.
© 2023 NTT
DATA Group Corporation 39 ④WALやバックアップ関連の改善 ⚫ pg_dumpでlz4とzstdに対応 ✓ -zまたは--compressで、gzip/lz4/zstdと圧縮レベルを指定可能(noneで非圧縮) ✓ 15以前はgzipのみ ⚫ archive_commandとarchive_libraryの同時指定不可 ✓ 15で追加されたarchive_libraryパラメータ、15時点ではarchive_commandと同時 に指定可能(archive_libraryが優先される) ✓ 16では同時に追加できない、設定ファイルの書き方に注意 v16
39.
© 2023 NTT
DATA Group Corporation 40 ⑤モニタリング関連 ⚫ pg_stat_ioビューの追加 ✓ PostgreSQLのIOに関連する統計情報を表示 ✓ OSレベルでは調べるのが難しい、共有バッファ内のreadなども見れるように ✓ 今後、各種ツールでも対応が進むと思われる v16
40.
© 2023 NTT
DATA Group Corporation 41 ⑥ロールの追加等 ⚫ 2つのロールが追加された。 ロール名 概要 pg_create_subscription スーパーユーザ以外でも、CREATE SUBSCRIPTIONが可能 pg_use_reserved_connections reserved_connectionsで予約した接続数を使って接続が可能。 なお、実際のコネクションは以下でカウントされるため、利用時に注 意が必要。 max_connections = superuser_reserved_connection + reserved_connection + その他一般ユーザ pg_maintain (VACUUMやANALYZE等ができる権限だったがリバートされた) v16
41.
© 2023 NTT
DATA Group Corporation 42 05. まとめ 4
42.
© 2023 NTT
DATA Group Corporation 43 (再掲)サマリ:各バージョンの新機能 ①SQL ②ロジカル レプリケーション ③性能改善 ④バックアップ ⑤モニタリング ⑥ロール • publicスキーマの権限変更 • MERGE • REGEXP系 • 行/列フィルタ • lsn指定の同期スキップ • エラー時の無効化 • NOT INや外部ソート • ¥copyの改善 • archive_module • WAL/ pg_basebackup圧縮 • pg_stat_subscription_stats • JSON形式のログ • pg_checkpoint • SEARCH/CYCLE • postgres_fdw • ストリーム送信 • バイナリ転送 • Memoize • Bottom-up Index Deletion • VACUUM改善 • pg_stat_wal • pg_stat_progress_copy • pg_read/write_all_data • JSON関数、IS JSON • ANY_VALUE • libpq接続ロードバランシング • スタンバイからレプリケーション • パラレル適用 • 双方向 • パラレルクエリ、インクリメンタ ルソートの拡張 • pg_dump圧縮(lz4/zstd) • pg_stat_io • pg_create_subscription • pg_use_reserved_connections 開発者向け、使いたいSQLがあればどんどんバージョンアップを ロジカルレプリケーションを使い倒したいなら、最新バージョンを使おう 地道な性能改善の取り込みを意識しよう 実行計画も新しくなるので、バージョンアップ後は知識のアップデートも必要 どちらかと言うとDB管理者向け、クラウド利用の場合はメリット少なめ オンプレ/自前で大量DB管理するケースでバージョンアップのメリット大きい v15 (2022年) v16 (2023年) v14 (2021年)
43.
© 2023 NTT
DATA Group Corporation 44 さて、PostgreSQL v17はどうなる? ※あくまで予想です v14 v15 v16 v17 • publicスキーマの権限 • MERGE • REGEXP系 • 行/列フィルタ • lsn指定の同期スキップ • エラー時の無効化 • NOT INや外部ソート • ¥copyの改善 • archive_module • WAL/ pg_basebackup圧縮 • pg_stat_subscription_stats • JSON形式のログ • pg_checkpoint • SEARCH/CYCLE • postgres_fdw • ストリーム送信 • バイナリ転送 • Memoize • Bottom-up Index Deletion • VACUUM改善 • pg_stat_wal • pg_stat_progress_copy • pg_read/write_all_data • JSON関数、IS JSON • ANY_VALUE • libpq接続ロードバランシング • スタンバイから • パラレル適用 • 双方向 • パラレルクエリ、 インクリメンタルソートの 拡張 • pg_dump圧縮(lz4/zstd) • pg_stat_io • pg_create_subscription • pg_use_reserved_connections ①SQL ③性能改善 ④バックアップ ⑤モニタリング ⑥ロール ②ロジカル レプリケーション • SQL/JSON関連 • 透過的カラム暗号化 • Table AMのAPI拡張 • DDLやSeqの対応 • Time-delayed • Async IO • ロックの改善 • 64bit XID(freeze削減) • Incremental Backup • WALサイズの削減 • 一部コマンドでsuperuser権限が 不要に
44.
© 2023 NTT
DATA Group Corporation 45 (おまけ)クラウドにおける対応状況 ⚫ 2023/10時点の各社サービスのPostgreSQLバージョン対応状況 クラウド サービス名 PostgreSQL Ver. 備考 AWS RDS for PostgreSQL 11 - 15 16はプレビュー Aurora PostgreSQL 11 - 15 LTS 12.9/13.9/14.6 Azure Azure Database for PostgreSQL 11 - 15 Cosmos DB for PostgreSQL 11 - 16 Google Cloud Cloud SQL for PostgreSQL 9.6 - 15 Enterprise Plusは14,15 Alloy DB for PostgreSQL 14互換 PostgreSQL interface for Spanner - 完全な互換性はない OCI OCI Database for PostgreSQL 14.9 2023/12?