it技術:データベース:postgresql
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン | ||
it技術:データベース:postgresql [2022/06/22 17:07] – [サポート終了期限(EOL=End Of Life)] yajuadmin | it技術:データベース:postgresql [2024/11/15 10:00] (現在) – [スキーマ単位] yajuadmin | ||
---|---|---|---|
行 9: | 行 9: | ||
- | 将来的には追記型アーキテクチャを捨てて、EnterpriseDBが率先して開発している「zHeap」の実装して他のデータベースのようにUNDOログをもつようにしたい。\\ | + | 将来的には追記型アーキテクチャを捨てて、EnterpriseDBが率先して開発している「zHeap」の実装して他のデータベースのようにUNDOログをもつようにしたい。→ その後zHeapのメイン開発者が抜けて休止状態\\ |
[[https:// | [[https:// | ||
===== 接続ドライバー ===== | ===== 接続ドライバー ===== | ||
行 55: | 行 55: | ||
|12.0|2019/ | |12.0|2019/ | ||
|13.0|2020/ | |13.0|2020/ | ||
+ | |14.0|2021/ | ||
+ | |15.0|2022/ | ||
+ | |16.0|2023/ | ||
+ | |17.0|2024/ | ||
==== サポート終了期限(EOL=End Of Life) ==== | ==== サポート終了期限(EOL=End Of Life) ==== | ||
行 60: | 行 64: | ||
^バージョン^初期リリース日^サポート終了期限^ | ^バージョン^初期リリース日^サポート終了期限^ | ||
+ | |17|2024年09月26日|2029年11月8日| | ||
+ | |16|2023年09月14日|2028年11月9日| | ||
+ | |15|2022年10月13日|2027年11月11日| | ||
|14|2021年09月30日|2026年11月12日| | |14|2021年09月30日|2026年11月12日| | ||
|13|2020年09月24日|2025年11月13日| | |13|2020年09月24日|2025年11月13日| | ||
行 190: | 行 197: | ||
* pg_amcheckコマンド | * pg_amcheckコマンド | ||
* ANALYZEコマンドのパフォーマンス改善により大幅に高速化 | * ANALYZEコマンドのパフォーマンス改善により大幅に高速化 | ||
+ | |||
+ | ==== PostgreSQL15情報 ==== | ||
+ | 2022-10-06にリリース | ||
+ | |||
+ | === 主な新機能 === | ||
+ | [[https:// | ||
+ | [[https:// | ||
+ | [[https:// | ||
+ | |||
+ | * Merge文のサポート | ||
+ | * 正規表現関数の追加 | ||
+ | * NOT IN句の改善 | ||
+ | * ソートの性能改善 | ||
+ | * ウィンドウ関数の性能改善 | ||
+ | * psql \copyの性能改善 | ||
+ | * zstandard圧縮サポート | ||
+ | * 先読みによるリカバリ性能改善 | ||
+ | * SQL/ | ||
+ | * 多重範囲型への集約 | ||
+ | * ロジカルレプリケーションの機能拡張 | ||
+ | * 呼び出し元権限で実行されるビュー | ||
+ | * モジュールによるWALアーカイブ | ||
+ | * JSONLOG形式 | ||
+ | * モニタリングビューの追加 | ||
+ | * ロジカルレプリケーションの機能拡張 | ||
+ | * パラレルクエリの強化 | ||
+ | * バージョン非互換対応(新機能ではないけど) | ||
+ | * PublicスキーマのCreate権限がデフォルトからなくなる | ||
+ | |||
+ | ==== PostgreSQL16情報 ==== | ||
+ | 2023-09-14にリリース | ||
+ | |||
+ | === 主な新機能 === | ||
+ | [[https:// | ||
+ | [[https:// | ||
+ | |||
+ | * 性能向上 | ||
+ | * パラレルクエリ対応追加 | ||
+ | * ウィンドウ関数の最適化 | ||
+ | * 同時データ投入の性能向上 | ||
+ | * SIMD CPUアクセラレータ対応 | ||
+ | * SQL機能 | ||
+ | * SQL/JSON 対応 | ||
+ | * 整数リテラル表現の追加 | ||
+ | * ICU照合順序の拡張 | ||
+ | * ロジカルレプリケーション機能追加 | ||
+ | * スタンバイ上でのパブリケーション | ||
+ | * トランザクションの並列適用 | ||
+ | * 双方向ロジカルレプリケーション | ||
+ | * クライアント機能 | ||
+ | * libpqロードバランス | ||
+ | * psqlで拡張プロトコル対応 | ||
+ | * pg_dump圧縮オプション追加 | ||
+ | * 運用管理 | ||
+ | * 新たなモニタリング項目 | ||
+ | * 新たな定義済みロール | ||
+ | * ページ凍結の改善 | ||
+ | * VACUUMリングバッファ指定 | ||
+ | * Mesonビルド | ||
+ | |||
+ | ==== PostgreSQL17情報 ==== | ||
+ | 2024-09-26にリリース | ||
+ | |||
+ | === 主な新機能 === | ||
+ | [[https:// | ||
+ | [[https:// | ||
+ | |||
+ | * 性能向上 | ||
+ | * VACUUM性能改善 | ||
+ | * COPY性能向上 | ||
+ | * ストリームI/ | ||
+ | * 各種プランナ改善 | ||
+ | * SQL機能 | ||
+ | * SQL/ | ||
+ | * MERGE文の拡張 | ||
+ | * COPY FROM に ON_ERROR オプション追加 | ||
+ | * ロジカルレプリケーション機能追加 | ||
+ | * pg_upgrade 対応の改善 | ||
+ | * フェイルオーバに対応 | ||
+ | * pg_createsubscriberコマンド追加 | ||
+ | * パーティショニング機能 | ||
+ | * 排他制約に対応 | ||
+ | * IDENTITY列に対応 | ||
+ | * 運用管理 | ||
+ | * インクリメンタルバックアップ | ||
+ | * 新たな定義済みロール | ||
+ | * 新たなモニタリングビュー | ||
+ | * pg_dump の –filterオプション | ||
===== 設定について ===== | ===== 設定について ===== | ||
行 323: | 行 418: | ||
search_path = ' | search_path = ' | ||
</ | </ | ||
+ | ==== psqlの使い方 ==== | ||
+ | psqlの機能やの使い方を紹介しているスライド資料\\ | ||
+ | [[https:// | ||
+ | |||
==== psqlのパスワード入力省略 ==== | ==== psqlのパスワード入力省略 ==== | ||
パスワード入力なしでpsqlを実行するには、下記フォルダの「pgpass.conf」にパスワードを設定しておく。 | パスワード入力なしでpsqlを実行するには、下記フォルダの「pgpass.conf」にパスワードを設定しておく。 | ||
行 401: | 行 500: | ||
===== エクスポート ===== | ===== エクスポート ===== | ||
+ | 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オプションを指定する。\\ | ||
行 418: | 行 545: | ||
pg_dump -T (テーブル名) | pg_dump -T (テーブル名) | ||
- | ==== スキーマ単位 ==== | + | |
- | sオプションを指定する。\\ | + | |
- | pg_dump -s (スキーマ名) | + | |
行 580: | 行 705: | ||
|×|×|×|不可| | |×|×|×|不可| | ||
+ | === bloomインデックス === | ||
+ | bloomインデックスは、その名前のとおり、ブルームフィルタを用いて、条件を満たさないタプルを高速に除外する(=条件を満たす「かもしれない」タプルを残す)ことが可能なインデックスメソッドです。 | ||
+ | |||
+ | 主キーが複数の場合のインデックスにはデフォルトのb-treeインデックスが使用されるが、弱点として先頭のキーが外れるとインデックスが使われなくなる。その場合に複数列インデックスには、bloomインデックスを使用することで、先頭のキーが条件が外れていてもインデックスが使われる。\\ | ||
+ | [[https:// | ||
+ | |||
+ | bloomインデックスの本領は、複数列に対するインデックス設定をするときに発揮されます。bloom複合列インデックスの場合は、定義した列の順序に関係なくインデックス検索→Birmap Scanになります。B-Treeインデックスが使われるたケースと比べると検索時間は遅くなりますが、SeqScanほど遅くはないという検索時間になります。 | ||
+ | |||
+ | <code sql> | ||
+ | -- 拡張追加 | ||
+ | create extension bloom | ||
+ | -- 拡張確認 | ||
+ | SELECT * FROM pg_available_extensions WHERE installed_version IS NOT NULL | ||
+ | -- bloomインデックスを追加 | ||
+ | CREATE INDEX idx_res_match ON res_match USING bloom (factory_cd, | ||
+ | </ | ||
==== 実行計画の取得 ==== | ==== 実行計画の取得 ==== | ||
SQLの前に「EXPLAIN」か「EXPLAIN ANALYZE」を付ける。\\ | SQLの前に「EXPLAIN」か「EXPLAIN ANALYZE」を付ける。\\ |
it技術/データベース/postgresql.1655885256.txt.gz · 最終更新: 2022/06/22 17:07 by yajuadmin