2

150 万のドキュメントを含むコレクションがあります。PHPを使用してカウントしています:

$db->some->ensureIndex(array("sometext" => 1));
$db->some->ensureIndex(array("datsbla" => 1));
$arr["sometext"] = $string; 
$arr["datsbla"] = array('$gte' => $some, '$lte' => $thing);
$count = $db->some->count($arr);

私はプロファイラーをオンにしましたが、そのようなすべてのカウントは 4500 ミリ秒のようです。私のページにはそのようなカウンターが 20 個あるので、私の Web ページは非常に遅くなります。

高速化 (< 100 ms) するにはどうすればよいですか? MongoDB を使用することは可能ですか?

ありがとう。

4

1 に答える 1

2

2 つの個別のインデックスがあります。クエリは一度に 1 つのインデックスしか使用できないため、インデックス作成を十分に活用していません。両方のフィールドで複合インデックスを試すと、大幅な改善が見られるはずです。

于 2012-03-23T14:57:04.840 に答える