如何减少MongoDB中第一个查询的查询响应时间?

我在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中加载索引有关吗?

3
额外 编辑
意见: 1
需要查看文档大纲以及索引的外观。
额外 作者 Petrogad,

1 答案

在第一次请求期间检查磁盘活动。它可能与将数据从磁盘安装到RAM有关。

如果你使用linux:iostat -m 1会帮助你。

0
额外
* iostat不是iostats。需要通过apt-get install sysstat安装
额外 作者 MKN Web Solutions,
在CentOS或RHEL机器上试试。 ;)
额外 作者 Markus W Mahlberg,