問題タブ [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.
sql - 行を削除して領域を取得する postgresql
私はpostgresqlの経験がありません。
で簡単なコマンドを実行しました
何千もの行が関係しています。しかし、実際にはそのコマンドの後、ディスク容量はさらに小さくなりました。
何がうまくいかないのですか?autovacuum = on を有効にし、「VACUUM FULL;」も実行しようとしました。しかし、それは私のディスク容量全体を消費しました。
私がやりたいことはとてもシンプルです。行を削除してスペースを確保します。関連する多くのスペースがあり、マシンにはそれほど多くのスペースが残っていません。それを行う方法はありますか?
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 oneとthis oneのような同様の問題を見つけましたが、UPDATE
クエリに関するものです。
私の質問は次のとおりです。連続して頻繁に更新すると、選択クエリが遅くなりますか? もしそうなら、それを処理する適切な方法は何ですか?
postgresql - 自動バキュームとpostgresqlのバキューム
Postgresql には、無効なタプルが占めるスペースを再収集するためのバキューム機能があります。自動バキュームはデフォルトでオンになっており、構成設定に従って実行されます。
pg_stat_all_tables の出力、つまり last_vacuum と last_autovacuum を確認すると、十分な数のデッド タプル (1K 以上) を持つデータベース内のほとんどのテーブルに対して自動バキュームが実行されませんでした。また、これらのテーブルがめったに使用されない 2 ~ 3 時間のタイム ウィンドウも取得します。
自動バキュームだけに頼るのは良い考えですか?自動バキュームが適切に機能するために必要な特別な設定はありますか?
手動掃除機を設定する必要がありますか? 両方を並行して使用するか、自動バキュームをオフにして手動バキュームのみを使用する必要がありますか?