0

一部のクエリは、クエリ内の唯一のフィールドがインデックス付きフィールドである場合でも、比較的小さなコレクション (~200K ドキュメント) で疑わしいほど遅くなりました。例 (Java ドライバーを使用):

eventReportColl.distinct("host").size()

ホストにインデックスが作成されている場合でも、約3 秒かかり、シェルcoll.distinct("host").lengthでは約 2秒かかります。

coll.getIndexes()

...

{
  "v" : 1,
  "key" : {
    "host" : 1
  },
  "ns" : "db.event_reports",
  "name" : "host_1"
}

上記のクエリがホスト インデックスを使用しない理由はありますか? 残念ながら、explain() が個別に機能するようには見えないため、これが原因であるとしか考えられません。これは、MongoLab で実行されている v2.2.4 にあります。(また、2 秒または 3 秒は大したことではないように思えるかもしれませんが、返される前にこれらのタイプのクエリを 3 つか 4 つ実行する API があると、合計されます...最終的な db サイズの増加は言うまでもありません)。インデックスの使用を強制する方法や、count クエリを高速化する方法はありますか?

4

1 に答える 1