草庐IT

分片键

全部标签

mongodb - MongoDB 分片性能不佳

我是MongoDB分片的新手,我们面临着性能问题。我用三台服务器尝试了许多测试用例,我觉得与单台服务器上的单个mongod实例相比,MongoDB分片并没有提供更好的性能。我说的对吗?如果我不正确,请提供测试集合、分片键和负载测试程序。测试用例1:我在mongod和单个分片(http://docs.mongodb.org/manual/core/sharded-cluster-architectures-test/)上的单个实例之间进行了一次负载测试,我观察到由于mongos和配置服务器,分片设置的性能下降了40%。mongos和configserver是否占用40%服务器资源?测试用

mongodb - 在 MongoDB 中为基于时间的查询选择一个好的分片键

我有一个包含以下文档的集合:{"_id":ObjectId("535e194aba863da3118cdf8a"),"device_id":"1080000008","others":[{"mileage":"0.0","event":"5","satellite":"8","altitude":"0","heading":"290"}],"speed":68,"lat":1.3209,"lng":103.89139,"dateTime":ISODate("2014-04-28T17:03:05.000Z"),"output_status":0,"street_name":"JALAN

mongodb分片用户认证

我设置了一个全新的、分片的MongoDb(3个配置服务器,3个节点副本集)。按照网上的文档,真的没有任何问题。分片数据库和集合;mongos连接到系统;一切正常。我不了解的一件事是身份验证在分片系统中是如何工作的。我为所有6个节点设置了key文件。当我想添加用户时,我是从mongos做的吗?我是否必须登录到副本集中的每个节点并添加用户?我必须将用户添加到配置服务器吗?特别是我通过mongos创建了一个MMS用户,这允许mms-monitoring-agent连接到足以了解各种服务器的信息。但它实际上不能从其中任何一个读取数据;我收到如下错误:askfailure`serverStatu

mongodb 分片键使用

看了一些关于mongodbcluters分片的资料,后期对shardkey的作用和数据迁移感到很迷茫。假设我们有两个分片来存储英语词典中的单词。单词的第一个字母是选择的分片键。假设以A-C开头的词被分配到shard-A;以D-Z开头的单词分配给分片B。显然,通过这种方式,Shard-B中的词数比Shard-A中的词数多得多。因此,一段时间后,一些以D-Z开头的词会从Shard-B迁移到Shard_A以进行数据平衡。所以,我的困惑是,以D-Z开头的单词出现在Shard-A中与分片键的规则相矛盾。请帮助我走出迷茫。提前致谢。 最佳答案

mongodb 分片复制成员 : could not find member to sync from

我正在尝试设置具有副本集分片的mongodb,我启用了--rest这样我就可以在浏览器上查看我的分片,但是,当我查看“replSetGetStatus”时,它显示“找不到要同步的成员”imageofmyreplicamembersonmybrowser当我在主复制上执行rs.status()时,我的副本成员列表{"set":"S1repset","date":ISODate("2015-09-29T16:19:22.020Z"),"myState":1,"members":[{"_id":0,"name":"10.10.30.10:10000","health":1,"state":1

node.js - 使用 mongoose 将 node.js 连接到 MongoDB 中的分片副本集群的正确方法

最近我们重新设计了我们的MongoDB数据库集群,除了我们已经实现的分片之外,还使用了SSL和副本集。SSL工作起来并不难,我们只需要拆分私钥和证书,然后一切正常。然而,事实证明,让我的Node.js应用程序连接到两个mongos实例比我预期的要困难。在我们实现副本集之前,我们只有两个分片,每个分片都运行一个mongos路由器,在mongoose中我给它以下连接字符串:mongodb://Host1:27017,Host2:27017/DatabaseName然后,在连接的选项对象中,我传入了以下内容:{mongos:true}这似乎工作得很好。但是,在实现副本集后,每当我通过mong

MongoDB:克隆单服务器开发。数据库到生产分片集群

我在我们的开发服务器上玩了一段时间以获得一个新产品,现在它已经上线了,我想将现有数据从一台机器(mongod,本地)移动到我们的6服务器分片设置(每个2个分片)3副本集)-有没有办法将数据库克隆到远程分片?(最坏的情况,使用分片键示例进行简单的转储和插入会非常好!)谢谢! 最佳答案 你应该将你的开发服务器添加到分片环境中:使用--shard选项重启你的开发服务器在您的mongos上:键入db.runCommand({addshard:"serverhostname[:port]",name:"migration"});使用删除碎片命

MongoDB 分片键

我一直在考虑为我的数据选择最佳分片键(通过复合索引),并考虑将文档创建日期与客户编号相结合。(或发票编号)将是一个很好的组合。如果MongoDB会将客户编号视为一个倒序的字符串,即:90043=>3400990044=>4400990045=>54009etc.创建日期的索引将确保相对较新的数据保留在内存中,而落后的客户将帮助MongoDB在集群中分配数据/负载。这是一个正确的假设吗?如果是这样...我是否需要保留我的客户才能按我期望的方式进行分发? 最佳答案 关于您的具体问题“我是否需要保留我的客户以使其按我期望的方式分发?”,不

mongodb - 我应该对我的 MongoDB 中的所有集合进行分片还是只分片一些

我正在运行MongoDB集群(我网站的后端)。我正在将我以前的数据库从普通数据库转换为分片结构。问题是:我应该分片我所有的收藏还是只分片那些我预计会增长很多的。我有一些永远不会超过几千个文档的集合,最多几十万个,我应该对它们进行分片吗?如果是,什么时候?是在转换过程中立即转换,还是在没有着色的情况下进行转换,稍后再进行分片?改一下问题:如果表不是太大,对其进行分片有什么好处吗? 最佳答案 一个常见的误解是分片是基于集合的大小。这是完全不真实的。然而,常识确实表明,当一个集合达到一定大小时,它可能太多而无法存储在单个服务器上,但另一方

spring - 使用 spring mongo 进行分片

我正在使用mongoDB通过springweb应用程序存储和查询近5000万条记录(没有固定模式的大型Json文件)。基于简单K-V对的查找查询需要几秒钟。我正在寻找将搜索时间缩短到由于存储文件的性质,索引对我不起作用。我正在寻找替代方案并遇到了分片。但是,我找不到很好的教程来解释如何为我现有的spring-mongo应用程序设置分片。有人可以指点我一个好的解释吗?也欢迎任何其他优化搜索时间的建议!编辑根据评论,我将现有的Mongo数据库转换为一个分片数据库,其中包含1个配置服务器、1个查询服务器和2个分片。以前我的(spring-boot)application.properties