PostgreSQL 16 新機能

561 Views

November 28, 23

スライド概要

PostgreSQL 16 での新機能のうち、福島が独断と偏見で選んだものを紹介します

profile-image

日本PostgreSQLユーザ会

関連スライド

各ページのテキスト
1.

PostgreSQL 16の新機能 Open Source Conference 2023 Niigata 2023-11-25 13:00 - 13:15 日本PostgreSQLユーザ会 名古屋支部 福島克輝 1

2.

本日の話題: ● PostgreSQL 15の新機能おさらい ● PostgreSQL 16の新機能 講演者: ● 福島克輝(ふくしまかつあき) ● 日本PostgreSQLユーザ会名古屋支部 ● 株式会社セイノー情報サービスにて仕事は主に技術支援 2

3.

最新のマイナーバージョン ● 2023/11/9に以下のバージョンをリリース –16.1、15.5、14.10、13.13、12.17、11.22 ● 11のサポートは2023/11/9まで PostgreSQLのサポート期間はイニシャルリリース日 から5年間です ● 3

4.

PostgreSQL 15 ・ 全体的には劇的な 性能アップなし 2022年 9月リリース ・ ピンポイントで改 ●性能向上 善 ●外部ソートのアルゴリズム変更 ●先読みによるリカバリ性能改善 ●パラレルクエリSELECT DISTINCTも有効 ●ウィンドウ関数性能改善row_number()、rank()、count() ●NOT IN 性能改善 ●\copy FROM 性能改善 ●実行時統計情報の共有メモリ格納 ● 4

5.

PostgreSQL 15 ・ 意欲的な機能追加 SQL新機能 ●MERGE文をサポート ●DDL新機能 ●ロジカルレプリケーション機能追加 –行、列単位での絞り込み構文 ● ● ・ 実用観点での拡張 ・ 必要なら仕様変更 運用管理 初期状態でのpublicスキーマへの権限変更 ●ICUをグローバルロケールプロバイダとして使用可能 ● PostgreSQL 16からicuがデフォルトに 5

6.

ロケールプロバイダによる振る舞い PostgreSQL 16からinitdb時にパラメータ無指定だと ICUが利用される ● ● 特にソート順にこだわらなければ--locale=Cで ● 以下文字種のソート順に注意 半角記号 ● 半角数字 ● 半角アルファベット ● 全角記号 ● 全角数字 ● 全角アルファベット ● 半角カタカナ ● 全角カタカナ ● 全角ひらがな ● 漢字 ● 6

7.

PostgreSQL 16 性能向上 ●DISTINCT最適化 ● –インクリメンタルソートに対応 ● テーブルへの一括挿入の効率化(COPYなど) –ページ拡張を複数ページまとめることで高速化 HASH結合のパラレル対応 –これまではHash Left Joinのみ対応 ● ● 集約関数 string_agg(),array_agg()でパラレル対応 7

8.

PostgreSQL 16 SQL新機能 ●整数リテラル: 10進数以外、3桁区切り ● –'0x30B1'、'-0o0755'、'+0b0011'、'1_500_000' DATE TIMESTAMP型での+INFINITYが使用可能 ●FROM句のサブクエリのエイリアスが不要に ●ANY_VALUE集約をサポート ●IS_JSON述語を追加 ●COPYでのFDWへの一括挿入をサポート ●TRUNCATEのトリガーがFDWで許可 ● 8

9.

PostgreSQL 16 モニタリング ●pg_verifybackup で-Pオプション追加(進捗報告) ●モニタビュー: ● –pg_stat_io(新規追加) –pg_stat_*_tables、pg_stat_*_indexes last_seq_scan,last_index_scan追加) ● ● ( 運用機能 VACUUMに 以下のオプションを追加 –SKIP_DATABASE_STATS and ONLY_DATABASE_STATS –PROCESS_MAIN –BUFFER_USAGE_LIMIT 9

10.

pg_stat_io backend_type | io_object | io_context | reads | writes | extends | op_bytes | evictions | reuses | fsyncs | stats_reset ---------------------+-----------+------------+----------+---------+---------+----------+-----------+----------+--------+------------------------------autovacuum launcher | relation | normal | 19 | 5 | | 8192 | 13 | | 0 | 2023-02-13 11:50:27.583875-08 autovacuum worker | relation | normal | 15972 | 2494 | 2894 | 8192 | 17430 | | 0 | 2023-02-13 11:50:27.583875-08 autovacuum worker | relation | vacuum | 5754853 | 3006563 | 0 | 8192 | 2056 | 5752594 | | 2023-02-13 11:50:27.583875-08 client backend | relation | 25832582 | | 8192 | 753962 | 25074439 | | 2023-02-13 11:50:27.583875-08 client backend | relation | bulkwrite | 4654 | 2858085 | 3259572 | 8192 | 998220 | 2209070 | | 2023-02-13 11:50:27.583875-08 client backend | relation | normal | 960291 | 376524 | 159497 | 8192 | 1103707 | | 0 | 2023-02-13 11:50:27.583875-08 client backend | relation | 128710 | 1221 | 127489 | | 2023-02-13 11:50:27.583875-08 background worker | 2023-02-13 11:50:27.583875-08 | bulkread | vacuum 626900 | 0 | 0 | 8192 | | relation | bulkread | 39059938 | 590896 | | 8192 | 802939 | 38253662 | background worker | relation | normal | 257533 | 118972 | 0 | 8192 | 256437 | | 0 | 2023-02-13 11:50:27.583875-08 background writer | relation | normal | | 243142 | | 8192 | | | 0 | 2023-02-13 11:50:27.583875-08 checkpointer | relation | | 390141 | | 8192 | | | 18812 | 2023-02-13 11:50:27.583875-08 standalone backend | relation | bulkwrite | 0 | 0 | 8 | 8192 | 0 | 0 | | 2023-02-13 11:50:27.583875-08 | normal standalone backend | relation | normal | 689 | 983 | 470 | 8192 | 0 | | 0 | 2023-02-13 11:50:27.583875-08 standalone backend | 10 | 0 | 0 | 8192 | 0 | 0 | | 2023-02-13 11:50:27.583875-08 | relation | vacuum (14 rows) 10

11.

PostgreSQL 16 confファイル ●pg_hba.conf / pg_ident.confでincludeをサポート ●pg_ident.confでpg_hba.confとおなじような、 リテラルではないユーザ名のサポート ●pg_hba.conf でデータベース及びロール項目での正規表現を サポート ●クライアント機能 ●psql: マジック変数追加 ● – ● SHELL_EXIT_CODE、SHELL_ERROR libpq: 接続パラメータ追加 –sslcertmode、require_auth、load_balance_hosts 11

12.

JPUGの活動 ● イベント PostgreSQLアンカンファレンス - オンラインで毎月開催 ● PostgreSQLカンファレンス - オンサイト開催を続けました ● PostgreSQL勉強会 - 各地支部で年1回~数回 ● 合宿 (2023年度再開予定!) ● OSCなど各種イベントに出展(通年) ● 文書翻訳 https://github.com/pgsql-jp/jpug-doc ● ML運営 pgsql-jp@postgresql.jp, jpug-users@postgresql.jp ● 最近は Slack postgresql-jp が中心 ● Webサイト ( www.postgresql.jp 、lets.postgresql.jp) ● SLACK https://tinyurl.com/pgsql-jp-slackin ● 12

13.

ご清聴ありがとうございました 13