Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mongodb replinexprefetch的重要性_Mongodb - Fatal编程技术网

Mongodb replinexprefetch的重要性

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索引,而不会加载其他(可能)更重的索引

这与mongodb副本集中的参数replIndexprefetch有关:

我感到困惑有两个原因

  • 如果有额外的索引,那么mongod必须在某个时间点之前获取它们 应用oplog中的更改
  • 有什么不同吗 与启用/禁用此参数相关的性能

  • 一种想法是:{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从主目录拉到自己的目录,但我没有检查它的代码,但是,如果不是这样,那么该选项也会让我感到困惑