gpt4 book ai didi

Mongodb 分片和索引

转载 作者:可可西里 更新时间:2023-11-01 10:44:24 25 4
gpt4 key购买 nike

我一直在努力部署一个大型数据库。我已经部署了 3 个分片集群并开始索引我的数据。然而,已经 16 天了,我才完成了一半。

问题是,我是否应该将所有数据导入非分片集群,然后在原始数据进入数据库后激活分片,然后附加更多集群并开始索引?这会自动平衡我的数据吗?

或者我应该再等 16 天才能使用当前的方法...

*编辑:以下是对正在导入的设置和数据的更多说明...

所以我们有 1.6 亿个这样的文档

"_id" : ObjectId("5146ae7de4b0d58a864bcfda"),
"subject" : "<concept/resource/propert/122322xyz>",
"predicate" : "<concept/property/os/123ABCDXZYZ>",
"object" : "<http://host/uri_to_object_abcdy>"

索引:主语、谓语、宾语、主语 > 谓语、宾语 > 谓语分片键:主语、谓语、宾语

设置:AWS 上的 3 个集群(每个集群有 3 个副本集),每个节点有 8 GiB RAM(配置服务器在每个集群中,Mongos 在单独的服务器中)

数据由 Java 程序导入到 Mongos。导入此数据、索引和分片的理想方式是什么。 (无需等待一个月才能完成该过程)

最佳答案

如果您正在执行大量的批量插入,那么在没有索引的情况下执行插入然后索引集合通常会更快。这与 Mongo 动态管理索引更新的方式有关。

此外,MongoDB 在索引时对内存特别敏感。检查 db.stats() 中索引的大小并将您的数据库连接到 Mongo Monitoring Service .

根据我的经验,每当 MongoDB 花费的时间比预期的多很多时,这是由于以下两种情况之一:

  1. 它耗尽了物理内存或使自己陷入糟糕的 I/O 模式。 MMS 可以帮助诊断两者。尤其要查看页面错误图。

  2. 对未索引的集合进行操作,这不适用于您的情况。

关于Mongodb 分片和索引,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15733885/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com