it技術:データベース:postgresql
差分
このページの2つのバージョン間の差分を表示します。
| 両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
| it技術:データベース:postgresql [2024/09/30 16:17] – yajuadmin | it技術:データベース:postgresql [2025/10/16 11:15] (現在) – [複合インデックス] yajuadmin | ||
|---|---|---|---|
| 行 59: | 行 59: | ||
| |16.0|2023/ | |16.0|2023/ | ||
| |17.0|2024/ | |17.0|2024/ | ||
| + | |18.0|2025/ | ||
| ==== サポート終了期限(EOL=End Of Life) ==== | ==== サポート終了期限(EOL=End Of Life) ==== | ||
| https:// | https:// | ||
| ^バージョン^初期リリース日^サポート終了期限^ | ^バージョン^初期リリース日^サポート終了期限^ | ||
| + | |18|2025年09月25日|2030年11月7日| | ||
| |17|2024年09月26日|2029年11月8日| | |17|2024年09月26日|2029年11月8日| | ||
| |16|2023年09月14日|2028年11月9日| | |16|2023年09月14日|2028年11月9日| | ||
| 行 262: | 行 263: | ||
| === 主な新機能 === | === 主な新機能 === | ||
| [[https:// | [[https:// | ||
| - | [[https:// | + | [[https:// |
| * 性能向上 | * 性能向上 | ||
| 行 286: | 行 287: | ||
| * pg_dump の –filterオプション | * pg_dump の –filterオプション | ||
| + | ==== PostgreSQL18情報 ==== | ||
| + | 2025-09-25にリリース | ||
| + | |||
| + | === 主な新機能 === | ||
| + | [[https:// | ||
| + | [[https:// | ||
| + | |||
| + | * 性能向上 | ||
| + | * 非同期I/ | ||
| + | * Btreeインデックスのスキップスキャン | ||
| + | * プランナ改善(WHERE句内にOR条件がある場合の最適化、ほか) | ||
| + | * GINインデックスの並列作成 | ||
| + | * 大量のテーブルアクセス時のロック処理の改善 | ||
| + | * 組み込み照合順序pg_unicode_fast | ||
| + | * メジャーバージョンアップ | ||
| + | * プランナ統計情報の移行 | ||
| + | * チェック処理の並列化オプションの追加 | ||
| + | * --swapオプションの追加 | ||
| + | * SQL機能 | ||
| + | * 仮想生成列の追加 | ||
| + | * 更新系DMLのRETURNING句へOLD, | ||
| + | * UUID v7関数の追加 | ||
| + | * 非決定論的な照合順序利用時のLIKE句のサポート | ||
| + | * CASEFOLD関数の追加 | ||
| + | * 各種制約の追加(WITHOUT OVERLAPS、ほか) | ||
| + | * ラージオブジェクトに対するデフォルト権限設定のサポート | ||
| + | * セキュリティ機能 | ||
| + | * TLS v1.3 暗号スイートの追加 | ||
| + | * postgres_fdw、dblinkへのSCRAM認証のパススルーオプションの追加 | ||
| + | * 運用管理 | ||
| + | * プランナ統計情報のダンプ/リストア | ||
| + | * EXPLAIN文の強化 | ||
| + | * pg_stat_all_tablesへのVACUUM、ANALYZE総実行時間の追加 | ||
| + | * 接続単位でのI/ | ||
| + | * 論理レプリケーション時の書き込み衝突の情報詳細化 | ||
| ===== 設定について ===== | ===== 設定について ===== | ||
| postgresql.confの設定値は、下記SQLで context の値により設定反映のタイミングが違う。 | postgresql.confの設定値は、下記SQLで context の値により設定反映のタイミングが違う。 | ||
| 行 500: | 行 536: | ||
| ===== エクスポート ===== | ===== エクスポート ===== | ||
| + | pg_dumpツールを使用する場合、保存形式がカスタム形式と平文形式があります。\\ | ||
| + | pg_restoreツールは保存形式がカスタム形式のみ対応しています。 | ||
| + | |||
| + | [[https:// | ||
| + | |||
| + | === バックアップ === | ||
| + | ^保存形式^バックアップコマンド^圧縮^データのみ^スキーマのみ^テーブル指定^ | ||
| + | |カスタム形式|pg_dump -Fc|〇|〇|〇|〇| | ||
| + | |平文形式|pg_dump -Fp(省略可)|×|〇|〇|〇| | ||
| + | |||
| + | === リストア === | ||
| + | ^保存形式^リストアツール^データのみ^スキーマのみ^テーブル指定^SQLに変換^TOCの確認 ※2^他DBへの移行^ | ||
| + | |カスタム形式|pg_restore|〇|〇|〇|〇|〇|〇※3| | ||
| + | |平文形式|psql等SQL実行環境|△※1|△※1|△※1|-|×|〇| | ||
| + | |||
| + | * ※1…バックアップ時に選択した対象を全てリストアする | ||
| + | * ※2…TOC=Table Of Contents。そのバックアップファイルにどのようなデータが格納されているかを一覧形式で確認したり、一覧から選んだデータだけリストアできる。 | ||
| + | * ※3…SQLに変換してから行う。変換時に標準SQLオプションを指定する事ができる為、平文形式より柔軟性が高い。 | ||
| ==== 全体 ==== | ==== 全体 ==== | ||
| pg_dumpall | pg_dumpall | ||
| ==== スキーマ単位 ==== | ==== スキーマ単位 ==== | ||
| - | pg_dump -h ホスト名 -p ポート番号 DB名 | + | pg_dump -n スキーマ名 |
| + | |||
| + | <code bat スキーマデータ取得.bat> | ||
| + | @echo off | ||
| + | |||
| + | SET PGPASSWORD=test | ||
| + | pg_dump -U test -n foo > foo.dump | ||
| + | </ | ||
| === リストア === | === リストア === | ||
| - | pg_restoreは、pg_dumpによってアーカイブされた平文形式以外のアーカイブファイルを使って、PostgreSQLデータベースをリストアするためのユーティリティ | + | 平文形式の場合、psqlコマンドでダンプファイルを指定してリストアする。 |
| + | < | ||
| + | psql -U test < foo.dump | ||
| + | </ | ||
| ==== テーブル単位 ==== | ==== テーブル単位 ==== | ||
| tオプションを指定する。\\ | tオプションを指定する。\\ | ||
| 行 517: | 行 581: | ||
| pg_dump -T (テーブル名) | pg_dump -T (テーブル名) | ||
| - | ==== スキーマ単位 ==== | + | |
| - | sオプションを指定する。\\ | + | |
| - | pg_dump -s (スキーマ名) | + | |
| 行 695: | 行 757: | ||
| CREATE INDEX idx_res_match ON res_match USING bloom (factory_cd, | CREATE INDEX idx_res_match ON res_match USING bloom (factory_cd, | ||
| </ | </ | ||
| + | |||
| + | === PostgreSQL 18以降の場合 === | ||
| + | PostgreSQL 18の新機能「B-treeインデックスのスキップスキャン」により、先頭以外からでもインデックスが効くようになる。 | ||
| + | |||
| + | [[https:// | ||
| ==== 実行計画の取得 ==== | ==== 実行計画の取得 ==== | ||
| SQLの前に「EXPLAIN」か「EXPLAIN ANALYZE」を付ける。\\ | SQLの前に「EXPLAIN」か「EXPLAIN ANALYZE」を付ける。\\ | ||
it技術/データベース/postgresql.1727680636.txt.gz · 最終更新: 2024/09/30 16:17 by yajuadmin
