4

データベースの設計に関して基本的な質問があります。単一の postgresql データベースがあり、他のテーブルよりもはるかに大きなテーブルが 1 つあります。これは、ソフトウェアのすべての変更を記録する監査証跡です。これを行うのは賢明ではありませんか?これを別のデータ ストア (redis) または別のデータベースに保存したほうがよいでしょうか? または、Postgresql は、大きなテーブルが他のテーブルの読み取りパフォーマンスに影響を与えないようにこれを処理しますか。postgres はメモリなどにキャッシュするデータをどのように認識しますか?

このような基本的で漠然とした質問で申し訳ありません。他にどのように質問すればよいかわかりません。1 年後、私は道を切り開きたくないのですが、テーブルの 1 つが 50 GB で、残りのデータベースが 1 GB 未満であるため、データベースのパフォーマンスに深刻な問題が発生しています。

ありがとう。

4

1 に答える 1

4

テーブル パーティション分割 (PostgreSQL継承を使用) を使用します。パーティションは、1 か月のデータに対して最大 150 GB です。テーブルのサイズはそれほど重要ではありません。それはクエリと、これらのクエリに使用されるインデックスに関するものです。

パフォーマンスに取り組むときは、常に実際のデータ、実際のクエリ、EXPLAIN および EXPLAIN ANALYZE を使用する必要があります。これがなければ、ラッキーショットになります。

于 2013-01-27T19:44:16.280 に答える