Mongoose を介して MongoDB 内の大量のデータを照会する高速 API を構築しています。DB は MongoDB の Atlas に保存されます。クエリの結果が 10,000 を超えるドキュメントになると、クエリがかなり遅く感じ始めます。15〜20秒のように。ある時点で、データが 100.000 を超えるドキュメントに増加し、パフォーマンスが問題になり始めると想像してください。私のクエリは私にはかなり単純に思えます:
if (req.query.start_date && req.query.end_date) {
query.date = {
$gte: req.query.start_date,
$lte: req.query.end_date,
}
}
const line_items = await MyCollection.find(query);
res.json({line_items: line_items});
注: コレクション内の _id フィールドはインデックス化されていると思いますか?
データは 10 分ごとに追加されるため、キャッシュは実行可能なオプションとは思えないことに注意してください。
クエリを高速化するにはどうすればよいですか? また、1 回のクエリで多すぎると見なされるデータの量は?