2

WindowsのRAMディスクでPostgreSQLを実行して実験しています。私が行った方法は、単純にデータ ディレクトリを ramdisk に配置することでした。

特定のベンチマークを実行しなくても、パフォーマンスは素晴らしく、CPU バウンドのみのようです。私の質問は、work_mem、shared_buffers などの最適な値は何でしょうか?

データベースが RAM にある場合でも、多くのクエリを実行するのに 30 分以上かかります。したがって、テーブルにインデックスを作成する意味があるかどうかは疑問です。もちろん、インデックスはRAMにとどまる必要があります。私は PostgreSQL をデータ ウェアハウスに使用していることに言及しておく必要があります (小さいものですが)。

編集: DataRam.com の RamDisk ユーティリティを使用していることに言及する必要があります。RAMディスクを構成するときに、時々ブルースクリーンが表示されるだけで、確立されたときは表示されません。これはノスタルジックなアイキャンディーだと思います。;)

4

2 に答える 2

1

私は間違いなくインデックスを作成します。エンジンは、あらゆる種類の最適化に含まれる情報を使用でき、パフォーマンスを大幅に向上させるはずです。RamDiskは、最悪の場合のテーブルスキャンタイプのケースを解決しますが、必ずしもそのテーブルスキャンが正しいルックアップを実行するよりも高速であることを意味するわけではありません。

于 2011-02-07T23:49:35.133 に答える
1

はい、インデックスを使用しますが、work_mem はマシン自体のサイズに依存します。もちろん、高い work_mem が必要な理由の 1 つは、テープ ソートを行うためにディスクをヒットしないようにするためです。RAM ディスクでは、これはそれほど危険ではありません。RAM ディスクにはデータの整合性がないことを覚えておいてください。

于 2011-02-08T06:39:05.347 に答える