SQLite3 と Hibernate with Java を使用しています。マップされたオブジェクトに最速でアクセスできるように、どうにかしてデータベース全体をメモリにロードしたり、データベースからすべてのデータをフェッチしたりできますか? たとえば、Company クラスと Employee クラスがあり、Company で Employees を company.getEmployees() としてマッピングしたとします。データベースからすべての会社を取得したいのですが、後でこのメソッドを呼び出すとすぐに従業員を取得したいと思います。それらをプリロードする方法はありますか?さらに、従業員が他のオブジェクトにマップされている場合、それらもプリロードできますか? 要約すると、データベース全体をロードし、ORM を使用してデータにアクセスしたいと思います。ありがとう!
1365 次
2 に答える
2
目標が単純に驚異的なパフォーマンスである場合は、いくつかのオプションがあります。
- Hibernate 2 次キャッシュを構成する
- 前のポイントに加えて、データがあまり変化しない場合は、クエリ キャッシュを構成します。
- SQLite の代わりに、組み込みモードでHSQLDBまたはH2インメモリ SQL データベースを使用します
- 大規模な共有キャッシュでObjectDBを使用します。JPA準拠のOODB。
- MongoDB を使用します。非常に高速なインメモリ NoSQL ソリューション
SQL を使用する必要がない場合は、ObjectDB をお勧めします。
(編集: 熱心なフェッチを削除し、クエリ キャッシュを追加しました。)
于 2012-12-13T15:42:09.060 に答える