【问题标题】:mongodb performance with large array within a document文档中包含大型数组的 mongodb 性能
【发布时间】:2013-08-24 14:11:03
【问题描述】:

我在想出一个性能良好的 mongodb 模型时遇到了麻烦。我有200万员工。我需要存储一组可以访问员工的主管 ID。像这样的图片数据..

{
'fullName':'Jonathan Smith',
'employeeId':'8675309',
'supervisors':[1234,7654,45676,34543,56545]
}

每个数组可能有数百个元素。元素也可以波动。所以我需要快速执行 $puts 和 $pulls 来添加和减去数组中的元素。

我很好的示例操作是......我们有一个主管 5555,现在可以访问 510,000 名员工。所以我需要更新这 510,000 名员工,将 5555 添加到这些员工数组中。

然后查询是,给我主管 5555 有权访问的所有员工。

有没有更好的方法来做到这一点?我可以做些什么来确保性能。

【问题讨论】:

    标签: mongodb schema mongodb-query mongodb-java


    【解决方案1】:

    听起来这 510,000 名员工实际上可能属于不同的类别或实体,而不仅仅是“由主管 5555 管理的员工”。称这个类为“A”。员工将被标记为属于“A”类(可能还有其他类),并且 5555 将被标记为“A”的经理,但不是个别员工的经理。这是在假设“A”级经理发生变化的可能性比“A”级所有510,000名员工发生变化的可能性更大。

    【讨论】:

    • 好的,我明白你在说什么。这将使列表 pf 数组元素更小,因为主管可能具有相同的 A 组。所以假设我采用了这种方法。如果我仍然有 200 万员工并且需要在这些员工之间执行推送和拉取操作并添加组 ID,那又如何呢?性能有问题吗?
    • 200 万份文件并不是很多。除非您经常需要通过交互式响应实时更新所有这些文档,否则这没什么大不了的。您应该能够每秒更新几千个文档。
    • 我最近写了一篇关于在 MongoDB 中增长数组的博文:goo.gl/eDcV5z 在那里你可以看到这种行为的基准。
    猜你喜欢
    • 1970-01-01
    • 2016-12-30
    • 2018-03-25
    • 2016-12-11
    • 2012-11-26
    • 1970-01-01
    • 2017-07-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多