4

これは私の環境です。

Java - オラクルによる 1.7

mongod v2.4.5 (Mongolab)

2 つの MongoDB ドライバー (2.9.3 と 2.11.2) のパフォーマンスの違いを見つけました。

各ドライバーを使用して同じコードを実行すると、2.11.2 は 2.9.3 よりも遅くなります。

   for(int i=0; i<1000; i++){
        BasicDBObject doc = new BasicDBObject(
                "currentTime",
                new SimpleDateFormat("HH:mm:ss:SSS").format(Calendar.getInstance().getTime())
        );
        coll.insert(doc);
    }

    DBCursor cursor = coll.find();
    try{
        while(cursor.hasNext()){
            System.out.println(cursor.next());
        }
    } finally {
        cursor.close();
    }

上記のコードは、MongoDB に 1000 個のドキュメントを配置するものです。

ドライバー 2.9.3 では、1~2 秒かかります。しかし、2.11.2 では 1 分以上かかります。

誰もこの問題について何か知っていますか?

4

1 に答える 1

4

V 2.10.0以降、Javaドライバーのデフォルトの書き込み懸念がNORMALからSAFEに変更されまし た こちらをご覧ください

これは、古いドライバー バージョンでは、メッセージがソケットに書き込まれるとすぐに、デフォルトで挿入操作が返されることを意味します。

一方、新しいバージョンのドライバーでは、デフォルトで操作が返される前にサーバーによって認識される必要があり、これははるかに遅くなります。

于 2013-08-14T21:52:38.240 に答える