1

クレーン以上のHeroku DB プランでは、キャッシュは 0 バイトではありません。

これは、これらの計画では、コードに

User.find(10)

たとえば、クエリの結果は保存されますか? したがって、DB クエリのパフォーマンスが向上しますか?

4

1 に答える 1

3

PostgreSQLにはクエリ結果キャッシュがありません。Herokuがカスタムの内部PostgreSQLフォークに1つ追加していない限り(ほとんどありません)、ディスクから読み取られたテーブルとインデックスの内容を格納するためにデータベースで使用できるディスクキャッシュである可能性が高いため、次の場合に再読み取りする必要はありません。再度アクセスしました。これはブロックレベルのキャッシュであり、クエリレベルまたは行レベルのキャッシュではありません。

キャッシュ用のRAMが多いと、特にAmazonEC2のようにI/ Oパフォーマンスが低いセットアップでは、PostgreSQLのパフォーマンスに大きな違いが生じます。

Hibernate ORMやその他のJPA実装などの一部のアプリケーションレベルのツールは、クエリ結果キャッシュ、つまりエンティティキャッシュを維持しますActiveRecordがこれを行うかどうかはわかりませんが、行う場合は、データベース側ではなく、アプリケーションサーバー側で行われます。

于 2013-01-15T12:38:14.763 に答える