it技術:データベース:postgresql:運用
差分
このページの2つのバージョン間の差分を表示します。
両方とも前のリビジョン前のリビジョン次のリビジョン | 前のリビジョン次のリビジョン両方とも次のリビジョン | ||
it技術:データベース:postgresql:運用 [2021/01/21 10:31] – [effective_cache_size] yajuadmin | it技術:データベース:postgresql:運用 [2021/06/25 00:39] – [VACUUMとVACUUM FULL] yajuadmin | ||
---|---|---|---|
行 133: | 行 133: | ||
pg_basebackup -U postgres -D " | pg_basebackup -U postgres -D " | ||
</ | </ | ||
+ | |||
+ | ===== パフォーマンスチューニング ===== | ||
+ | [[https:// | ||
+ | |||
+ | - VACUUMで不要領域を再利用可能な状態にする | ||
+ | - REINDEXでインデックスの不要領域を削除する | ||
+ | - ANALYZEで統計情報を最新化する | ||
+ | - VACUUM FREEZEでトランザクションIDを凍結状態にする | ||
===== データベース初期化 ===== | ===== データベース初期化 ===== | ||
==== 全てのデータベース初期化 ==== | ==== 全てのデータベース初期化 ==== | ||
行 462: | 行 470: | ||
|約2400万件|6分| | |約2400万件|6分| | ||
- | **VACUUM FULLを使うのではなく、pg_repackを使う。** | + | **VACUUM FULLを使うのではなく、pg_repack(Windows版は非対応)を使う。** |
+ | |||
+ | === VACUUMの自動実行 === | ||
+ | デフォルトで自動的に行われる | ||
+ | |||
+ | * 統計情報の再計算 \\ 以下の計算式以上のレコードが更新(UPDATE/ | ||
+ | < | ||
+ | autovacuum_vacuum_threshold + autovacuum_vacuum_scale_factor * レコード数 | ||
+ | </ | ||
+ | * パラメータはテーブル単位でも決定可能 \\ 大規模テーブルではテーブル単位に autovacuum_vacuum_scale_factor を 0 に \\ autovacuum_vacuum_threshold を適切な値に変更し、頻繁に VACUUM を実行することを推奨 | ||
==== AUTOVACUUM(自動実行) ==== | ==== AUTOVACUUM(自動実行) ==== | ||
行 560: | 行 577: | ||
===== インデックスの再構築 ===== | ===== インデックスの再構築 ===== | ||
+ | PostgreSQL のインデックスサイズは一度大きくなると、その後小さくなるタイミングが限られています。 | ||
+ | * DROP INDEX でテーブル自体を削除した場合 | ||
+ | * TRUNCATE TABLE でテーブル全体を空にした場合 | ||
+ | * REINDEX でインデックスを再構成した場合 | ||
+ | |||
+ | インデックスが肥大化した状況では実行計画のコスト計算に影響することがあります。これは適切な実行計画を選択する妨げとなるかもしれません。 | ||
+ | |||
+ | [[https:// | ||
==== リインデックス ==== | ==== リインデックス ==== | ||
reindexコマンドを使用して、インデックスの再構築する。\\ | reindexコマンドを使用して、インデックスの再構築する。\\ | ||
行 571: | 行 596: | ||
==== テーブルロックなしのリインデックス ==== | ==== テーブルロックなしのリインデックス ==== | ||
reindexコマンドはテーブルロックがかかってしまうので、運用中のDBに対して使うのは難しい。\\ | reindexコマンドはテーブルロックがかかってしまうので、運用中のDBに対して使うのは難しい。\\ | ||
- | ただ、PostgreSQLでは別名で全く同じインデックスの作成を行うことができる | + | ただ、PostgreSQLでは別名で全く同じインデックスの作成を行うことができる。\\ |
+ | <wrap em> | ||
* [[http:// | * [[http:// | ||
行 577: | 行 603: | ||
* [[https:// | * [[https:// | ||
* [[http:// | * [[http:// | ||
+ | * [[https:// | ||
<code bat> | <code bat> | ||
行 643: | 行 670: | ||
|3|Z|マイナーバージョン番号|セキュリティバグやデータ破損の可能性のあるバグ等が修正された場合。\\ その他の軽微な修正も同時に行われる。| | |3|Z|マイナーバージョン番号|セキュリティバグやデータ破損の可能性のあるバグ等が修正された場合。\\ その他の軽微な修正も同時に行われる。| | ||
- | ※10系から、PostgreSQL X.Zと二つの数字で表記に変更。最初がメジャーバージョン、新機能追加 | + | ※10系から、PostgreSQL X.Zと二つの数字で表記に変更。最初がメジャーバージョン:新機能追加、最後がマイナーバージョン:バグフィックスなど |
==== マイナーアップデート ==== | ==== マイナーアップデート ==== | ||
行 651: | 行 678: | ||
==== メジャーアップデート ==== | ==== メジャーアップデート ==== | ||
メジャーアップデートでは、データのバックアップとリストアの作業が必要である。\\ | メジャーアップデートでは、データのバックアップとリストアの作業が必要である。\\ | ||
- | メジャーアップデート用ツールとして、[[https:// | + | メジャーアップデート用ツールとして、[[https:// |
- | [[https:// | + | |
+ | === pg_upgrade === | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ |
it技術/データベース/postgresql/運用.txt · 最終更新: 2024/04/24 11:07 by yajuadmin