Mongodb replinexprefetch的重要性
这与mongodb副本集中的参数replIndexprefetch有关: 我感到困惑有两个原因Mongodb replinexprefetch的重要性,mongodb,Mongodb,这与mongodb副本集中的参数replIndexprefetch有关: 我感到困惑有两个原因 如果有额外的索引,那么mongod必须在某个时间点之前获取它们 应用oplog中的更改 有什么不同吗 与启用/禁用此参数相关的性能 一种想法是:{u id索引可能并不总是能够满足MongoDB的复制,也就是说,您可能会得到一个{{u id:1,一些\u其他\u字段关于\u 20\u of them:1}的索引,所以这样做意味着MongoDB只会加载默认的{u id索引,而不会加载其他(可能)更重的索引
一种想法是:{u id索引可能并不总是能够满足MongoDB的复制,也就是说,您可能会得到一个
{{u id:1,一些\u其他\u字段关于\u 20\u of them:1}
的索引,所以这样做意味着MongoDB只会加载默认的{u id索引,而不会加载其他(可能)更重的索引index@Sammaye:我的怀疑是一样的,无论如何,mongod必须获取所有必须更新的相关索引。那么,告诉我们只获取id索引有什么意义呢?我认为更新索引不同于获取索引,我需要仔细研究一下more@Sammaye根据I-rem,对于任何不涉及索引键的写操作(比如更新),mongodb都不会获取该索引(假设没有发生文档移动)。你知道这件事吗?假设它是正确的,那么replIndexprefetch的用例对我来说没有任何意义。是的,我的意思是它不应该获取它不需要的索引,但是,当它确实包含那些索引键时(这就是我认为你的意思,不管是否只允许获取_id索引),更新索引键与“获取”索引,我认为它以不同的方式更新,比在成员上进行复制时必须将其获取到工作集中更高效,将oplog从主目录拉到自己的目录,但我没有检查它的代码,但是,如果不是这样,那么该选项也会让我感到困惑