我在MongoDB中有一个包含2000万个文档的集合,并为该集合创建了一个索引。我已确认find()查询使用索引(col_1_col_2)(使用说明确认)。但是,我注意到一天中的第一个find()查询需要5-10秒,但所有后续查询都需要不到100毫秒。
更新了DB统计信息: db..stats() ns。 数20135438 尺寸5694.57m avgObjSize 296.55146314672 storageSize 7109.57m numExtents 35 nindexes 4 lastExtentSize 1188.86m paddingFactor 1 旗帜1 totalIndexSize 3044.69m indexSizes { “ id ”:653319632, “col_1_col_2”:691730480, “col2_1”:848832320, “col1_1”:998706576 } 好的1 {顶部:1} 共18 readLock 16
问题: 1为什么第一个查询需要更长的时间? 2这与在RAM中加载索引有关吗?
答案 0 :(得分:0)
在第一次请求期间检查磁盘活动。它可能与将数据从磁盘安装到RAM有关。
如果你使用linux:iostat -m 1会帮助你。