私はproduct_catalogコレクションを持っており、膨大な数のドキュメントが含まれています。私たちはパフォーマンスを改善するためにmongodbで作成する必要がありますか?
{
"_id": "573c1540c4cebf791315aa0a",
"images": [],
"categories": [
"shirts",
"wedding",
"suits"
],
"publish": "1",
"inventory_management": "none",
"options": [],
"SEO": {
"title": "dummy",
"description": "dfasdfasd",
"keywords": "dummy"
},
"attributes": [],
"features": [],
"files": [],
"seller": "seller_one",
"approve": "approved",
"description": "<span style=\"color: rgb(57, 57, 57); font-family: 'Open Sans'; font-size: 14px; line-height: 21px; text-align: right;\">Description here.</span>",
"name": "dummy",
"alias": "dummy",
"price": 500,
"compare_price": 550,
"collections": [
"collection-2",
"collection-3"
],
"brand": "test_brand",
"sku": "rtrtrt",
"barcode": "12121",
"weight": "12",
"sort_order": 0,
"available": 1,
"uniquesku": [
"rtrtrt"
]
}
そして、我々は、クエリおよびソートオプションの後にドキュメントを取得されています
文書は、(文書構造)のようなものです。
db.collection('product_catalog').find(query).sort(sort_options).toArray(function(err, records){
// records
})
sort_options : { sort_order: 1, _id: -1 }
Query is like :
1. { publish: '1'}
2. { publish: '1', alias: 'alias_value' }
3. { publish: '1', approve: 'approve_value' }
4. { categories: 'category_value', publish: '1' }
5. { collections: 'collection_value', publish: '1' }
読み取り操作のパフォーマンスを向上させるためにはどのようなインデックスを作成する必要がありますか?
公開されるオプションは何ですか? 0と1?どの割合の文書が「公開された:1」であるか。それが99%なら、そのインデックスは非常に有用ではありません。 –
発行オプションは0と1です。文書の80%が公開されています(値: "1")。そして、すべての操作が高速になるようにインデックスを作成したいと思います。 – rajeshpanwar
https://docs.mongodb.com/manual/core/index-intersection/#index-intersection-and-sort – rajeshpanwar