パフォーマンスが向上しません私のメインデータベースをスピードアップするためにデータを2番目のデータベースに転送します(より少ないデータ=より良いパフォーマンス)。は、私は3つのテーブルでのPostgreSQL 9.2のデータベースを持っていた
すべてのテーブルから約20%のデータを移行した後、私のメインデータベーステーブルでVACUUM ANALYZE
を少しだけクリーンアップしました。
私は次の20%が移行するのがずっと速くなると思っていました....私は間違っていました。アーカイブするデータの次のすべてのパーセンテージは、処理速度が遅く、遅くなります。
私はおそらくVAACUM FULL
が必要だと思っていましたが、それを読むのはお勧めできません。さらに、クエリが非常に遅く、ディスク容量がほぼ2倍必要です(新しいテーブルを作成して古いテーブルを削除します)。
データが少なくても処理が遅くなる理由は何ですか?マイグレーション後にデータベースの速度を上げることができるいくつかのステップがありませんか?それ以外のクリーンアップのいくつかの種類VACUUM ANALYZE
メインデータベースからコピーするデータを選択し、メインデータベースから削除するデータを選択する3つのステップを測定の測定時間があることを指定する必要があります。
データの選択は問題です。アーカイブプロセスについて
:
- 私はX日後、古いテーブル行を選択します。それをコピーしてから削除します。
- 次に、前に選択したA行に接続されたB行を選択します。それをコピーしてから削除します。
- 最後に選択したB行に接続されたC行を選択します。それをコピーしてから削除します。
コンファレンス:
8ギガバイトのRAM。
max_connections = 100
shared_buffers = 2GB
effective_cache_size = 6GB
work_mem = 32MB
maintenance_work_mem = 512MB
checkpoint_segments = 32
checkpoint_completion_target = 0.9
wal_buffers = 16MB
default_statistics_target = 100
random_page_cost = 2.0
SQL移行コードとそれらのテーブル定義を転記します。 –
私はこれらの3つのステップが互いに独立していることを理解しています。彼らは?ステップ1が原因であることが判明しましたか? –
@ClodoaldoNetoステップ1と2が接続されます。しかし、私は 'select'を独立させてみましたが、' insert' + 'select'が2.5分続くところで約2分続くことがわかりました – ilovkatie