`
pingfeng
  • 浏览: 59293 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

mongoDB ruby driver性能测试与优化建议

阅读更多

用mongo的ruby driver进行测试。

测试脚本见附件

 

测试基本结果:

 

                                                |   MONGO |
-----------------------------------------------------------
find_one,find_first                       x1000 |   0.223 |
find by id                                x1000 |   0.304 |
find by index(composite index)            x1000 |   0.539 |
find use index and other field            x1000 |   0.871 |
find use a field in index field             x10 |  10.479 |
find not use index(1 field)                 x10 |   6.690 |
find not use index(2 field)                 x10 |   5.405 |
insert 1000 doc                              x1 |   0.337 |
update                                    x1000 |   0.079 |
remove 1000 doc                              x1 |   0.074 |

 

结果分析:

 

1. 索引查找:复合索引比单列索引查找要慢,本次测试是三个字段复合索引。0.304 vs 0.539

 

2. 无索引查找:查找的字段越多,越慢。5.405(一个字段) vs 6.690(二个字段) vs 10(四个字段)

 

3. 用复合索引的一个字段等于没有用索引。find use a field in index field             x10 |  10.479 |

 

4. 对子文档字段查找比一般字段要慢。5.405 vs 10.479

 

优化建议:

 

1. 设计好索引很关键!避免对子文档的字段零散操作,可以专门做一个数组字段(mongo强大之处)作为索引。

 

2. 尽量避免多字段,子文档无索引查找 。当文档数超过一百万时,查找时间将达到秒级

 

3. 复合索引是个整体 ,如果要对其中一个字段做查找,要专门再建一个索引。

 

基本上mongo性能非常好(包括复合索引),在索引上要小心,很多地方可以大胆使用!

 

 

 

 

 

分享到:
评论

相关推荐

    mongo-ruby-driverMongoDB的Ruby驱动程序

    总的来说,`mongo-ruby-driver`是Ruby开发者连接MongoDB数据库的重要工具,它简化了数据操作,提高了开发效率,并且与MongoDB的最新特性保持同步,是构建基于MongoDB的Ruby应用的基石。通过深入理解和熟练运用这个...

    mongo-ruby-driverMongoDB的Ruby驱动程序-源代码

    MongoDB的Ruby驱动程序,即`mongo-ruby-driver`,是用于与MongoDB数据库进行交互的一个关键组件。这个驱动程序允许Ruby开发者利用MongoDB的强大功能,包括文档存储、分布式数据处理以及灵活的数据模型。在本文中,...

    Mongodb 学习 PPT上课教程

    6. 丰富的 BSON 数据类型: MongoDB 还提供了丰富的 BSON 数据类型,还有 MongoDB 的官方不同语言的 driver 支持(C/C++、C#、Java、Node.js、Perl、PHP、Python、Ruby、Scala)。 MongoDB 的应用场景: 1. ...

    mongo-ruby-driver:MongoDB的Ruby驱动程序

    MongoDB Ruby驱动程序 官方支持的用于Ruby驱动程序。 Ruby驱动程序支持Ruby 2.3-2.7和JRuby 9.2。 文献资料 高级文档和用法示例位于。 最新版本的API文档可在找到。 要为master分支构建API文档,请在本地检出存储...

    mongodb官网文档集合

    为了确保MongoDB系统的高效运行,文档提供了关于“Optimizing Mongo Performance”的指南,包括配置参数调整、硬件优化建议以及性能监控工具的使用。这些内容对于理解如何针对特定工作负载进行性能调优至关重要。 #...

    mongodb pdf

    - 关键的数据库管理操作之一,涉及到如何在 MongoDB 中创建、删除索引以优化查询性能。 - **知识点**: - 创建索引的方法和语法。 - 删除索引的操作及注意事项。 - 不同类型的索引及其适用场景(例如单字段索引、...

    MongoDB官方实用文档

    - 分析了影响MongoDB性能的因素,并提供了具体的优化建议,帮助用户提升系统的运行效率。 - **设计概述(Design Overview)** - 探讨了MongoDB的设计理念和架构特点,包括文档型数据存储的优势、分片、复制集等...

    Ruby-mongorubydriverMongoDBRuby驱动程序

    在`mongodb-mongo-ruby-driver-4cb314a`这个版本中,可能包含的是驱动程序的源代码或者特定版本的构建。通过查看源代码,开发者可以深入理解驱动程序的工作原理,定制自己的功能,或者参与到驱动程序的开发和改进中...

    mongodb-driver-examples:几种语言的MongoDB示例存储库

    MongoDB驱动程序示例该git存储库包括mongodb连接和以下查询示例: C# Java Node.js Node.js(猫鼬) PHP Python(使用pymongo) Ruby Ruby(Mongoid) 在安装适当的驱动程序并插入MongoDB URI之后,这些示例应立即...

    mongodb_examples:在 MongoHQ 上运行的 Mongo Ruby Driver、Mongoid 和 MongoMapper 示例

    关于 在本地MongoDB或上运行的 , 和。 在。 安装 安装和 brew install mongo mongo > use test > db.addUser('test', 'test') ...Mongo Ruby 驱动程序 蒙古人 项目现场 简单教程 蒙戈映射器 项目现场 不错的教程

    mongo-meta-driver

    MongoDB Meta Driver努力做到与语言无关,从而产生可以直接针对(几乎)任何语言使用和测试的规范。 为此,我们利用Cucumber框架来定义规范并将其转换为针对驱动程序代码的测试。 我们希望该规范最终可以应用于尽...

    spidey-mongo:为Spidey(https)实现MongoDB后端

    Spidey-Mongo 这个gem为实现了后端, 是一个非常简单的框架,用于... Spidey::Strategies::Mongo2 :与Mongo Ruby Driver 2.x和兼容,例如,与Mongoid 5.x一起使用 Spidey::Strategies::Moped :与兼容 2.x中,例如

    mongo_odm:任何 Ruby 类到 MongoDB 的灵活持久性模块

    * Use the Mongo ruby driver when possible (query syntax, cursors, indexes management...) * Allow lazy loading of collections and queries nesting (concatenation of 'find' calls) to emulate ActiveRecord...

    hello-sparkjava:使用mongodb的Spark Java

    在本项目"hello-sparkjava:使用mongodb的Spark Java"中,我们将探讨如何结合流行的Java Web框架Spark Java与NoSQL数据库MongoDB进行开发。Spark Java是一个轻量级、易于使用的框架,适合快速构建RESTful Web服务,而...

Global site tag (gtag.js) - Google Analytics