Open2

Postgres × バキューム 覚書

かみなかみな

VACUUMとは

データベースの不要領域の改修とデータベースの解析行う(ドキュメントより)

コマンド

VACUUM [options] [table_name];

options

options 排他ロック 処理時間 メモ
なし 不要 削除フラグのついている領域を回収し、再利用可能とする。
FULL 必要 不要領域を完全に回収する。実行時はディスク容量に余裕を持たせる。

不要領域が溜まると・・・?

DBには残っていない不要なデータによりディスク使用量を圧迫します。

フルバキュームはデータ量に比例して実行時間も長いので、いつもヒヤヒヤ。

かみなかみな

FULL VACUUMするときに確認するコマンド

いっつも忘れてまうので備忘録。

SELECT
  relname,
  n_live_tup,
  n_dead_tup,
  CASE n_dead_tup WHEN 0 THEN 0 ELSE round(n_dead_tup*100/(n_live_tup+n_dead_tup) ,2) END AS ratio
FROM
  pg_stat_user_tables;

relname :テーブル名
n_live_tup :生きているタプル(行)
n_dead_tup:削除フラグがついているタプル(行)
ratio :n_dead_tupの比率

▼ 参考

https://ritchiekotzen.hatenablog.com/entry/2015/01/21/postgreSQL_で不要領域の比率を出すクエリ