1

MongoDB データベースにインデックスを追加していますが、すべてが最適な方法で行われていることを確認したいと考えています。_id フィールドに基づいてドキュメントを選択するクエリがたくさんありますが、ユーザー ID でクエリを実行して、そのドキュメントが現在のユーザーに属していることを検証する必要もあります。

例えば:

'_id'=>"123", "user_id"=>10

インデックスをどこに配置すればよいかわかりません。インデックスに最適なソリューションはどれですか..

  • _id のみ
  • _id と user_id の複合インデックス
  • 他の何か

本当に customer_id をクエリ フィールドとして渡す必要がありますか、それとも MongoDB から顧客 ID を返し、PHP コードを使用して確認する必要がありますか? つまり、クエリが _id と customer_id ではなく _id を検索するだけであれば、クエリはより速く実行されます。PHP で if ステートメントを使用して顧客 ID をチェックすると、MongoDB でクエリを使用するよりも PHP の方が処理が速くなります。

どんな考えでも大歓迎です!

4

1 に答える 1

2

_idクエリにがある場合は、既定の_idインデックスで十分です (作成する必要はありません)。ユニークなルックアップです。これ以上フィルタリングする必要はありません。フィルター処理する追加のフィールドがある場合、クエリの実行速度が低下することはありません。

于 2012-09-17T15:41:56.593 に答える