草庐IT

分片键

全部标签

mongodb - 直接连接到主分片以访问 MongoDB 中的未分片集合

如果我有一个包含一些分片和非分片集合的数据库。我可以直接连接到主分片以毫无问题地访问(包括读取和写入)非分片集合吗?我想这样做是因为我认为连接到mongos只会降低访问unshard集合的性能。我已经试过了,效果很好。但恐怕这里有些问题我不知道。 最佳答案 IfIhaveadatabasewithsomeshardedandunshardedcollections.CanIdirectconnecttotheprimaryshardtoaccess(includereadandwrite)theunshardcollectionsw

mongodb - 如何在 Mongodb 中检查集合是否分片

我写了db.runCommand({enablesharding:"database"})db.runCommand({shardcollection:"database.coll_1",key:{_id:"hashed"}})以及如何检查集合是否已分片?也许存在一些我不知道的功能。请帮助我! 最佳答案 我使用以下内容:使用数据库名db.colname.getShardDistribution()如果分片则输出分片分布,如果不是则Collectiondbname.colnameisnotsharded。检查this了解更多详情。我也

MongoDB - 通过自定义 _id 字段上的散列索引进行分片收集

问题:如何根据自定义_id字段的散列索引对集合进行分片?问题描述:我需要在MongoDB中存储url=>my_value对网址必须是唯一的我将执行大量查询来检查,如果我已经通过匹配{_id:md5(url_to_check)}拥有具有此类url的文档集合会很大(数十亿对url=>my_value),所以我想按url对它进行分片。解决方案,我认为:创建包含这些字段的集合:_id:md5(url)网址:网址值:我的值我不创建任何索引。_id默认由mongo索引问题:我想按_id对集合进行分片。散列共享key是完美的,但我是否必须创建散列分片key或者我可以按常规_idkey分片?我插入到_

performance - mongodb:分片可以提高查询性能吗?

您好,我有一个包含非常大数据的表,分片可以提高查询性能吗? 最佳答案 如果您生成一个允许MongoDB进行分片的适当key(请参阅他们的文档了解如何执行此操作),并且您有多个磁盘驱动器,那么简单的答案是肯定的。在他们的最后一个主要预发布版本中(当分片被演示时),他们有一个8服务器配置,每台服务器都有分片,并且每秒获得一百万行。 关于performance-mongodb:分片可以提高查询性能吗?,我们在StackOverflow上找到一个类似的问题: http

mongodb - 如何评估 mongodb 分片集群冗余级别?

我是mongodb的新手,并尝试接触mongodb文档。这里是我看到的“Eachshardisareplicaset”这句话?这是否意味着,如果我有10个分片,那么每个数据集在分布式系统中将有10个副本?如果是这样,有什么意义,冗余级别是否可以调整为2,因为如果我有30个分片并且冗余级别设置为2已经足以实现高可用性。还是我误解了一些mongodb术语? 最佳答案 在更透彻地阅读文档之后。我在这里回答我自己的问题。http://docs.mongodb.org/manual/core/replica-set-members/shard

mongodb - 使用 MongoDB Java 驱动程序以编程方式设置分片键

从MongoDBJava驱动程序版本2.10.1设置分片键的语法是什么?或者换句话说,我如何使用Java驱动程序执行此操作?sh.shardCollection("test.a",{"_id":"hashed"}}) 最佳答案 简短回答:您应该发出shardCollection命令。长答案:MongoDBshell中的sh.shardCollection只是调用admindb上命令的辅助方法。如果您在MongoDBshell中输入sh.shardCollection,您将看到该函数实际执行的操作:>sh.shardCollectio

内存中的 MongoDB 索引与分片

坊间传言,如果您不能将正在使用的索引保存在内存中,MongoDB会变慢。这如何与分片一起工作?分片是只在内存中保留自己的BTree,还是每个分片都需要在内存中保留整个集合的索引? 最佳答案 DoesashardedonlykeepitsownBTreeinmemory...?是的,每个分片管理自己的索引。ThewordonthestreetisthatMongoDBgetsslowifyoucan'tkeeptheindexesyou'reusinginmemory.在使用分片和二级索引时,您实际上可以预料到更糟的情况。关键问题是路

mongodb - 在不关闭现有 mongo 实例的情况下进行 Mongo 分片

我需要在不关闭的情况下进行分片,或者在端口27017中重启现有的mongo实例。我尝试了以下操作,(当默认端口正在运行和mongo实例时)mongod--shardsvr--dbpath/var/lib/mongodb/dba--port10001>/var/log/mongodb/shardlog/sharda.log&mongod--shardsvr--dbpath/var/lib/mongodb/dbb--port10002>/var/log/mongodb/shardlog/shardb.log&mongod--configsvr--dbpath/var/lib/mongodb

mongodb - MongoDB 中好的分片键

摘自《扩展MongoDB》一书:ThegeneralcaseWecangeneralizethistoaformulaforshardkeys:{coarseLocality:1,search:1}所以我的问题是,这样正确吗?不应该是更好的写作的对立面吗?也来自本书:Thispatterncontinues:everythingwillalwaysbeaddedtothe“last”chunk,meaningeverythingwillbeaddedtooneshard.Thisshardkeygivesyouasingle,undistributablehotspot.也就是说,我的

MongoDB-使用三个值的复合分片键

我正在创建一个使用MongoDB存储JSON对象的集合。我被困在分片部分。对于集合中的每条记录,我都有一个案例ID、客户ID和位置案例ID是一个10位数字(只有数字,没有字母)。CustomerID是客户名称和案例ID的组合。位置是一个2dsphere值,我期望位置具有不同的不同值。除此之外,我还记录了客户名称和案例描述。我所有的搜索查询都有案例ID、客户ID或位置的搜索条件。在这种情况下,我可以根据所有这三个值(CaseID、CustomerID和位置)创建复合键吗?我相信这提供了高基数并且易于检索记录。任何人都可以建议我这是否是一种好方法,因为我没有找到包含三个值的复合分片键。感谢