5

私の目標は、可能な限り最速の読み取り操作を達成することです。そのため、私のコード/説明でそれを達成するのに役立つ何かを見つけたら、お知らせください.

MongoDB からオブジェクトを取得する読み取り専用 Web アプリケーションがあります。ただし、ユーザーに返す応答オブジェクトはすべてのデータを必要としません。現在のところ、プロセスは次のとおりです。

  • mongo から情報を取得する
  • その情報をオブジェクトにマップする
  • アクセサー メソッドを使用して、上記のオブジェクトから応答オブジェクトに値を転送します。
  • 応答オブジェクトをユーザーに返します。

mongo から出力されるデータを応答オブジェクトに直接マッピングするだけで、手順 1 と 2 を組み合わせたいと思います。

私はそれが利用するすべてのクラスを掘り下げましたDefaultMongoTypeMapperが、それが正しい方向であると確信する前に頭を悩ませることはたくさんあります.

上に挙げたもの以外にも、いくつか気になることがあります。1 つは、Mongo に格納されているオブジェクトにはフィールドがないことです。これは、_classそれらが生データであるためです (私が見たところ、型マッパーはそのフィールドを使用して、マップするクラスを決定します)。これの利点は、データベースから出力されるすべてが同じオブジェクトにマップされるため、使用するクラスを想定できることです。

過去のようなことをした人はいますか、またはこれをどのように達成できるかについて何か提案はありますか?

とても有難い。

4

1 に答える 1

4

最速の読み取り操作を探している場合、おそらく最初に確認する場所は、実際の読み取りの速度と、MongoDB を使用したネットワーク経由の転送です。Java 内での処理 (妥当な範囲内) は、合計要求時間の非常に低い % になります。すでにこれを行っているかもしれませんが、MongoDB からの生の読み取り (インデックス、クエリ、レコード数、データベース スキーマ、構成など) を見てください。

Java 処理の場合、結果をどうしたいかによって大きく異なります。Java 処理のさまざまなオプションについていくつかのテストを作成することをお勧めします。これはおそらく CPU バウンドです。一度に多くのレコードを処理するテストを作成できれば、それぞれのパフォーマンス特性を確認できます。

ドキュメントから POJO を作成するコードを手動で記述できますか? これが最もパフォーマンスが高い可能性があります。それ以外の場合は、morphia のような ODM https://code.google.com/p/morphia/

Spring (上記のように) に精通している/使用している場合は、http: //projects.spring.io/spring-data-mongodb/を参照してください: http://spring.io/guides/gs/accessing -データモンゴ/

于 2013-11-18T17:44:31.887 に答える