Mongodb 在执行.explain()时,有人能告诉我nYields字段的用途吗?

Mongodb 在执行.explain()时,有人能告诉我nYields字段的用途吗?,mongodb,Mongodb,从网上我发现了这个: nYields是查询被时间分割的次数。 这意味着对于这个查询,其他查询被允许了23次。 db.update_queue.find().explain(); { "cursor" : "BasicCursor", "nscanned" : 6046, "nscannedObjects" : 6046, "n" : 6046, "millis" : 5, "nYields" : 23

从网上我发现了这个

nYields是查询被时间分割的次数。 这意味着对于这个查询,其他查询被允许了23次。

db.update_queue.find().explain();
{
        "cursor" : "BasicCursor",
        "nscanned" : 6046,
        "nscannedObjects" : 6046,
        "n" : 6046,
        "millis" : 5,
        "nYields" : 23,
        "nChunkSkips" : 0,
        "isMultiKey" : false,
        "indexOnly" : false,
        "indexBounds" : {

        }
}
这是我对上述内容的理解

这是否意味着该查询在执行当前查询之前要等到执行了23个查询???

文档说明:

解释一下

nYields是一个数字,它反映了此查询产生读锁以允许等待写入执行的次数。

文档说明:

解释一下


nYields是一个数字,反映了此查询产生读锁以允许等待写入执行的次数。

这取决于MongoDB的并发特性,在最新版本中,这些特性更加突出。有一个特性是,允许将RAM中的数据交换给RAM中的数据的操作

这意味着MongoDB从不空闲地排队等待您的操作,并且通常有助于更快的操作

nYields
表示此操作被MongoDB中的并发算法攻击了多少次,从而导致其他数据在RAM中的操作失败

编辑 作为编辑,从文档页面:

长时间运行的读写操作(如查询、更新和删除)在许多情况下都会产生错误。在MongoDB 2.0中,根据时间片和等待主动持有锁的操作数生成操作

然而:

在2.2之后,更自适应的算法允许基于预测的磁盘访问(即页面错误)进行操作


因此,在某些情况下,不仅仅是错误会影响产量,但我相信这个查询的错误比任何东西都多。

这是因为MongoDB的并发特性在最新版本中更加突出。有一个特性是,允许将RAM中的数据交换给RAM中的数据的操作

这意味着MongoDB从不空闲地排队等待您的操作,并且通常有助于更快的操作

nYields
表示此操作被MongoDB中的并发算法攻击了多少次,从而导致其他数据在RAM中的操作失败

编辑 作为编辑,从文档页面:

长时间运行的读写操作(如查询、更新和删除)在许多情况下都会产生错误。在MongoDB 2.0中,根据时间片和等待主动持有锁的操作数生成操作

然而:

在2.2之后,更自适应的算法允许基于预测的磁盘访问(即页面错误)进行操作


因此,在某些情况下,不仅仅是错误会影响到生成,但我相信这个查询的错误比任何事情都多。

“nYields是一个数字,它反映了这个查询生成读锁以允许等待写入执行的次数。
”:
“nYields是一个数字,它反映了此查询产生读锁以允许等待写入执行的次数。
“有人能解释一下这意味着什么吗?有人能解释一下这意味着什么吗???@PreethiJain回答你在问题中提到的另一个小问题,操作将在其数据返回RAM后恢复,而您认为这是关于并发性的,这与数据是否在RAM中无关。当读查询暂停以允许对同一集合的写操作运行时,就会产生收益。@MartinSkøtt,这应该可以修复it@Sammaye是的,好多了。并发常见问题解答提供了丰富的信息:)@PreethiJain要回答您在问题中提到的另一个小问题,操作将在其数据返回到RAM后继续,而您对这一点的看法是正确的,这是关于并发性的,与数据是否在RAM中无关。当读查询暂停以允许对同一集合的写操作运行时,就会产生收益。@MartinSkøtt,这应该可以修复it@Sammaye是的,好多了。并发常见问题解答提供了大量信息:)
What does this mean actually ??