2017-05-01 2 views
1

NoSQLデータベースとMongoDBが新しくなりました。MongoDB - Javaクラスによるパフォーマンスのクエリ

Mongodbのクエリ実行時間にアクセスしようとしています。私は、1000,10000と100000レコードのセットを使ってCURD操作を行う予定です。他のランダムなクエリもいくつか実行したいと思います。私はこれらのクエリをJavaクラスを通して実行したい。誰でも私に、Javaクラスファイルからの応答時間を取得する最善の方法を教えてください。 mongodbのデータベースプロファイラは良い方法ですが、java.langでプロファイラコマンドを実行したいと思っています。それぞれのクエリに対してjavaクラスからProfilerコマンドを実行する方法をお勧めします。

P .:いい方法があれば教えてください。どんな提案も大きな助けになるでしょう。

+0

一つの方法私のmongodbのパフォーマンスを向上させるには、コレクションにインデックスを追加することです。 Javaについて何も言及してくれないのは残念ですが、mongodbの終了からのパフォーマンスを向上させたい場合は、インデックス作成はキックスタートに最適です。 –

答えて

0

あなたは、通常の方法でfind()を起動して、そのようなクエリ修飾子を追加しますモンゴJavaクライアントを使用した:

MongoCollection<...> collection = ... 
FindIterable<...> results = collection.find(query).modifiers(new 
    Document(QueryOperators.EXPLAIN, true)); 

これはあなたにそのクエリのモンゴのプロファイラの文書を返します。

多くの詳細hereは、その文書の形式、内容などに基づいています。

あなたのプロファイリングに興味がある場合も、(特定のインデックスを使用するようにモンゴを強制すなわち)ヒントが必要になることがありますが、これは例えば、ほぼ同じ方法で行われた:iを使用して

MongoCollection<...> collection = ... 
FindIterable<...> results = collection.find().modifiers(new 
    Document(QueryOperators.HINT, indexName)); 
関連する問題