アプリケーションに Mongodb を使用しています。コレクションのインデックスの作成に関するクエリを取得しました。
まず第一に、以下はDBで検索を行い、データを返す私のクエリです
db.mycollection.find({ symbol: "UGHNG", date: "2013-11-08", mainsymbol: "HIJ" }).sort( { "price": 1,"surv": 1} ).pretty()
上記のクエリからわかるように、price と surv の 2 つのフィールドは、並べ替えの目的でのみ使用されます。
上記のインデックスを作成するための最良の方法は何ですか
上記のクエリのすべてのフィールドを含む複合インデックスを作成します。
db.mycollection.ensureIndex({"symbol":1,"date":1,"mainsymbol":1,"price":1,"surv":1},{"unique" : false})
また
以下に示すように、2 つの単一インデックスと 1 つの複合インデックスを作成して、上記のクエリを実行します。
db.mycollection.ensureIndex({"price" : 1}, {"unique" : false})
db.mycollection.ensureIndex({"surv" : 1}, {"unique" : true})
db.mycollection.ensureIndex({"symbol":1,"date":1,"mainsymbol":1},{"unique" : false})
これをすべての側面(RAMサイズ、クエリパフォーマンス)で処理するという点で最良のアプローチは何かとして、あなたの見解を共有してください