草庐IT

database-performance

全部标签

Mongodb - 分片 - 同时添加多个分片

我有一个带有4x分片的生产mongodb部署(3.6),它运行良好。我想向集群中添加4倍以上的分片。一次添加多个分片是否可以,或者这会引起戏剧性事件吗?我发现添加分片是一项昂贵的操作,在我看来,同时添加分片可以避免来回传输数据,从而提高性能。谢谢, 最佳答案 当您添加分片时,所有分片集合都需要重新平衡它们的数据,这意味着移动block直到所有分片具有大致相同数量的block。过去(3.4之前)在block迁移方面没有并行性,但是现在集群上可以发生的并行迁移的数量与集群中的分片数量直接相关。来自3.4补丁说明:forashardedc

database - MongoDB 文本索引搜索

我在mongodb中创建了一个集合,如下所示db.articles.insert([{_id:1,subject:"one",author:"abc",views:50},{_id:2,subject:"lastone",author:"abc",views:5},{_id:3,subject:"firstone",author:"abc",views:90},{_id:4,subject:"everyone",author:"abc",views:100},{_id:5,subject:"allone",author:"efg",views:100},{_id:6,subject:"

database - 使用 mongodb 的聊天应用程序架构

我正在尝试在mongodb中为聊天应用程序构建一个模式。我有两种类型的用户模型-Producer和Consumer。生产者和消费者可以相互对话。我的最终目标是获取任何生产者和消费者的所有对话并将它们显示在列表中,就像所有消息传递应用程序(例如Facebook)所做的那样。这是我想出的模式:Producer:{_id:123,'name':"Sam"}Consumer:{_id:456,name:"Mark"}Conversation:{_id:321,producerId:123,consumerId:456,lastMessageId:1111,lastMessageDate:7/7

database - 通过删除的成员连接到副本集成员

我有一个包含3个成员的简单副本集rs.status()的输出{...,"members":[{"_id":1,"name":"localhost:27021","stateStr":"PRIMARY",},{"_id":2,"name":"localhost:27022","stateStr":"SECONDARY",},{"_id":3,"name":"localhost:27023","stateStr":"SECONDARY",}]}我删除了一个成员rs.remove("localhost:27023")现在rs.status(){...,"members":[{"_id":1,

MongoDB : Cloning Database error?

当我尝试从其他机器克隆我的mongo数据库时,我在客户端上看到以下内容db.cloneDatabase('10.10.124.110'){"errmsg":"queryfailedstaging.system.namespaces","ok":0}在服务器上我看到了ThuNov1011:29:01[conn10]assertion10057unauthorizeddb:staginglocktype:-1client:10.10.124.110ns:staging.system.namespacesquery:{}我该如何解决这个问题? 最佳答案

performance - 缓慢的 MongoDB 查询 : can you explain why?

我有一个MongoDB查询,运行时间过长,但它:仅扫描6个对象点击索引持续花费约1500毫秒(没有分页或其他占用)mongostat中的索引miss%为0它出现在分析器中(没有explain()),我不明白为什么这么慢。有什么想法吗?gimmebar:PRIMARY>db.assets.find({owner:"123",avatar:false,private:false}).sort({date:-1}).explain(){"cursor":"BtreeCursorowner_1_avatar_1_date_-1","nscanned":6,"nscannedObjects":6

Mongodb 服务器端与客户端处理

我有一个shell脚本,它在一个集合上创建一个游标,然后用另一个集合中的数据更新每个文档。当我在本地数据库上运行它时,它会在大约15秒内完成,但在托管数据库上,它会运行超过45分钟。db.col1.find().forEach(function(doc){db.col2.findAndModify({query:{attr1:doc.attr1},update:{$push:{attr2:doc.attr2},upsert:true});});因此,为了处理此脚本,客户端和服务器之间显然存在网络开销。有没有办法保持所有服务器端的处理?我看过服务器端javascript,但从我读到的he

django - 如何在Django RESTful APIs中提高200万条数据的查询速度

我有一个200万条记录的科研出版物数据。我使用djangorestframework编写了用于在title和abstract中搜索数据的api。在使用postgres作为数据库时,这花费了我12秒,但是如果我使用MongoDB作为数据库,它会下降到6秒。但对我来说,即使是6秒,等待用户的时间也很长。我索引了title和abstract,但是摘要索引失败了,因为一些摘要文本太长了。这里是使用MongoDB的django模型(MongoEngine作为ODM):classJournal(Document):title=StringField()journal_title=StringFie

performance - MongoDB 按 ID 慢查询

我最近将我的MongoDB数据库从WindowsServer迁移到了CentOS。版本是2.4.9。我注意到我通过_id字段检索记录的速度很慢!我在周末运行了一个修复数据库,但没有解决问题。我有这种通过ID检索记录的方法(使用IN运算符)(使用springdatamongodb1.4.1.RELEASE):@OverridepublicMapfindAsMapIds(finalString[]ids,finalComponentType...comps){if(null==ids||0==ids.length){returnnull;}Mapresult=newHashMap();fi

performance - 如何使用 mongostats 诊断 mongodb 内部的性能问题

我一直在使用mongostats来诊断我的mongodb实例中的整体事件。我如何使用它来诊断性能问题/降级?我真正有兴趣深入了解的一个字段是锁定百分比和基于所有其他字段结果的预期行为。我觉得这个功能有点含糊,需要进一步完善。 最佳答案 锁定的%是全局写锁(记住,mongo有一个进程范围的写锁)在每个样本中被占用的时间百分比。当您增加写入次数(插入、更新、删除、db.eval()等)时,该百分比会增加。高值意味着数据库花费大量时间被锁定以等待写入完成,结果是在释放锁之前无法完成任何查询。因此,整体查询吞吐量将减少(有时会显着减少)。“