ユーザ用ツール

サイト用ツール


it技術:データベース:postgresql:運用

差分

このページの2つのバージョン間の差分を表示します。

この比較画面へのリンク

両方とも前のリビジョン前のリビジョン
次のリビジョン
前のリビジョン
次のリビジョン両方とも次のリビジョン
it技術:データベース:postgresql:運用 [2021/06/06 12:34] – [テーブルロックなしのリインデックス] yajuadminit技術:データベース:postgresql:運用 [2021/06/08 10:57] – [テーブルロックなしのリインデックス] yajuadmin
行 560: 行 560:
  
 ===== インデックスの再構築 ===== ===== インデックスの再構築 =====
 +PostgreSQL のインデックスサイズは一度大きくなると、その後小さくなるタイミングが限られています。
  
 +  * DROP INDEX でテーブル自体を削除した場合
 +  * TRUNCATE TABLE でテーブル全体を空にした場合
 +  * REINDEX でインデックスを再構成した場合
 +
 +インデックスが肥大化した状況では実行計画のコスト計算に影響することがあります。これは適切な実行計画を選択する妨げとなるかもしれません。
 +
 +[[https://taityo-diary.hatenablog.jp/entry/2021/06/05/143617|PostgreSQL のインデックス肥大化と実行計画のコストへの影響]]
 ==== リインデックス ==== ==== リインデックス ====
 reindexコマンドを使用して、インデックスの再構築する。\\ reindexコマンドを使用して、インデックスの再構築する。\\
行 571: 行 579:
 ==== テーブルロックなしのリインデックス ==== ==== テーブルロックなしのリインデックス ====
 reindexコマンドはテーブルロックがかかってしまうので、運用中のDBに対して使うのは難しい。\\ reindexコマンドはテーブルロックがかかってしまうので、運用中のDBに対して使うのは難しい。\\
-ただ、PostgreSQLでは別名で全く同じインデックスの作成を行うことができる\\+ただ、PostgreSQLでは別名で全く同じインデックスの作成を行うことができる\\
 <wrap em>※PostgreSQL12からは、REINDEX CONCURRENTLY が導入され、REINDEX による重いロックなしでインデックスを再構築できます。</wrap> <wrap em>※PostgreSQL12からは、REINDEX CONCURRENTLY が導入され、REINDEX による重いロックなしでインデックスを再構築できます。</wrap>
  
it技術/データベース/postgresql/運用.txt · 最終更新: 2024/04/24 11:07 by yajuadmin