1

これは私の開発環境の MongoDB サーバーの状態です。

  db.serverStatus()
{
        "version" : "1.6.5",
        "uptime" : 792725,
        "uptimeEstimate" : 790787,
        "localTime" : "Fri Sep 06 2013 11:05:32 GMT-0400 (EDT)",
        "globalLock" : {
                "totalTime" : 792724778241,
                "lockTime" : 8441722074,
                "ratio" : 0.010648994841225452,
                "currentQueue" : {
                        "total" : 0,
                        "readers" : 0,
                        "writers" : 0
                }
        },
        "mem" : {
                "bits" : 64,
                "resident" : 3729,
                "virtual" : 13764,
                "supported" : true,
                "mapped" : 12443
        },
        "connections" : {
                "current" : 94,
                "available" : 7906
        },
        "extra_info" : {
                "note" : "fields vary by platform",
                "heap_usage_bytes" : 726448,
                "page_faults" : 403439
        },
        "indexCounters" : {
                "btree" : {
                        "accesses" : 1804253,
                        "hits" : 1803993,
                        "misses" : 260,
                        "resets" : 0,
                        "missRatio" : 0.0001441039588128716
                }
        },
        "backgroundFlushing" : {
                "flushes" : 13211,
                "total_ms" : 176124,
                "average_ms" : 13.331617591401105,
                "last_ms" : 9,
                "last_finished" : "Fri Sep 06 2013 11:04:48 GMT-0400 (EDT)"
        },
        "cursors" : {
                "totalOpen" : 0,
                "clientCursors_size" : 0,
                "timedOut" : 8
        },
        "repl" : {
                "ismaster" : true
        },
        "opcounters" : {
                "insert" : 512974,
                "query" : 18735335,
                "update" : 6690119,
                "delete" : 217251,
                "getmore" : 19071,
                "command" : 8616326
        },
        "asserts" : {
                "regular" : 0,
                "warning" : 0,
                "msg" : 0,
                "user" : 69117,
                "rollovers" : 0
        },
        "ok" : 1
}

私の質問は、インデックス ミスが発生した値 (クエリ) を確認できるかどうかです。

db.setProfilingLevel(2) mongoexport オプションを使用して、system.profile コレクションからレコードを収集するようにプロファイリング レベルを設定しました 。

4

1 に答える 1

3

indexCounters.btree.missesは、インデックスに値が見つからなかったことを示しているわけではないことに注意してください。これは、サーバーがインデックス ページにアクセスしようとしたときにインデックス ページがメモリ内になかったため、ページインする必要があったことを意味します。

インデックス内の特定の値が見つからないクエリは、単にクエリを満たす結果が見つからないクエリです。

「問題のある」クエリをログに記録する 1 つの方法は、slowmsオプションを使用することです。指定されたミリ秒数を超えるクエリは、ログ ファイルに書き込まれます。

slowmsdb.setProfilingLevel() のオプションの 2 番目の引数として指定します。詳細については、こちらを参照してください。

于 2013-09-06T16:28:19.497 に答える