問題タブ [autovacuum]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
4732 参照

sql - 行を削除して領域を取得する postgresql

私はpostgresqlの経験がありません。

で簡単なコマンドを実行しました

何千もの行が関係しています。しかし、実際にはそのコマンドの後、ディスク容量はさらに小さくなりました。

何がうまくいかないのですか?autovacuum = on を有効にし、「VACUUM FULL;」も実行しようとしました。しかし、それは私のディスク容量全体を消費しました。

私がやりたいことはとてもシンプルです。行を削除してスペースを確保します。関連する多くのスペースがあり、マシンにはそれほど多くのスペースが残っていません。それを行う方法はありますか?

0 投票する
2 に答える
968 参照

postgresql - PostgreSQL は小さなテーブルから頻繁に更新される行を選択します

私は PostgreSQL 9.6 (Ubuntu 16.04) を使用しており、約 10k 行の小さなテーブル T があり、各行はピーク時に毎分 2 回更新されます (のようなものUPDATE T SET c1 = ?, c2 = ? WHERE id = ?)。さらに、これはこのテーブルで行われる唯一の更新操作であり、挿入と削除はほとんど行われません。

しかし、T でのクエリが少し遅いことに気付きSELECT、少し調べたところ、「PostgreSQL での更新は、実際には DELETE+INSERT のトランザクションである (MVCC による)」ことがわかりました。さらに、 this onethis oneのような同様の問題を見つけましたが、UPDATEクエリに関するものです。

私の質問は次のとおりです。連続して頻繁に更新すると、選択クエリが遅くなりますか? もしそうなら、それを処理する適切な方法は何ですか?

0 投票する
2 に答える
4065 参照

postgresql - 自動バキュームとpostgresqlのバキューム

Postgresql には、無効なタプルが占めるスペースを再収集するためのバキューム機能があります。自動バキュームはデフォルトでオンになっており、構成設定に従って実行されます。

pg_stat_all_tables の出力、つまり last_vacuum と last_autovacuum を確認すると、十分な数のデッド タプル (1K 以上) を持つデータベース内のほとんどのテーブルに対して自動バキュームが実行されませんでした。また、これらのテーブルがめったに使用されない 2 ~ 3 時間のタイム ウィンドウも取得します。

以下は、私のデータベースの自動バキューム設定です ここに画像の説明を入力

以下は pg_stat_all_tables の出力です ここに画像の説明を入力

自動バキュームだけに頼るのは良い考えですか?自動バキュームが適切に機能するために必要な特別な設定はありますか?
手動掃除機を設定する必要がありますか? 両方を並行して使用するか、自動バキュームをオフにして手動バキュームのみを使用する必要がありますか?