web-dev-qa-db-ja.com

追加専用のpostgresはどのようなパフォーマンス上の利点を可能にしますか?

単一のテーブルのみを持つPostgresデータベースがあるとします。 UPDATEステートメントは実行されず、DELETEも実行されないことがわかっています。 100%追加専用です。

Datomicなど、この動作に依存し、結果として特定のパフォーマンスの向上を実現するデータベースがいくつか存在します。ただし、これはPostgresが実行されると予想される一般的な方法ではないため、パフォーマンス面でメリットを得るためには、特別に構成する必要があると思います。

UPDATE/DELETEなしの保証を利用できる主な方法は何ですか?

掃除機を完全に無効にすることはできると思いますが、100%確実ではありません。とにかく、それが大きな勝利であるとは思いません。ここで行うことができる最大の構成変更は何ですか?

重要な場合、書き込みは特定の時間に1日に1回行われ、他の時間には行われません。ただし、詳細が「ローカライズされた」領域になりつつあると思うので、役に立たない場合は、この質問から編集します。 (参考になれば、ここで免責事項の部分を編集します!)

5
BlackVegetable

インデックスのみのスキャン(IOS)を利用したい場合は、追加のみのテーブルであっても、テーブルをバキュームする必要があります。実際、autovacuumはIOSのニーズに合わせて調整されたことがないため、IOSの追加のみのテーブルで最大限の効果を発揮するには、独自のバキュームをスケジュールする必要があります。autovacを無効にしないでください、それが何もすることがないとき、それは当然物事をしません、それでそれを無効にすることからの利益はありません。

それ以外にできることはあまりないと思います。この状況は9.6で導入されたフリーズマップの恩恵を大いに受けますが、それをアクティブにするために、少なくともその高いバージョンを使用する以外に何もする必要はありません。

2
jjanes