zoukankan      html  css  js  c++  java
  • 【NoSql】MongoDb

    【NoSql】MongoDb

     一. 文档

     1. 官网

     2. C# Driver

     3. C# 开发文档

     二. 命令

     1. --config "C:mongodbmongod.cfg" 设置 config 文件, 推荐通过设置配置文件来启动mongod

     三. 可视化管理工具

     1. robomongo 源码

     四. 注意点(与 Sql Server 的不同点)

     1. _id Mongo 的主键,建议自己维护该字段(可用自增或Guid),查询条件已该字段为主以提供性能。

     2. Mongo 是区分大小写的,这个要格外注意

     3. 修改字段时,如果字段不存在则会新增字段

     五. 适用场景

     1. 插入

     2. 完全命中索引的查询,更新,删除

     3. 不适用 全文索引

     六. 性能测试

     1. 环境 : 系统 Win10, CPU i5-5257U 2.70GHz, 内存 8G, 硬盘 APPLE SSD SM0128G

     2. 插入:

      a. 数据准备:实体 包含6个字段,_id 自增,4个string类型内容30个随机中文,一个随机int

      b. 每次插入10w条,单线程循环100次

      c. 结果 : 平均耗时:3.887秒

             IO占用:11M(注没有跑满)

             内存占用 : 3.8G(注没有跑满,不过增长不是线性的,内部应该有内存控制)

             CPU : 占用不多

             硬件资源没有跑满,多线程下总耗时会下降但单个耗时会上升

     3. 查询总量:

      a. 单线程循环100次

      b. 结果 :平均耗时 : 1毫秒

            应该插入和删除时内部有字段来标志总数,所以查询时不需要全表扫描,直接返回标志

     4. 查询按 _id :

      a. 随机生成1000w以内的数字,以此为条件查询,单线程循环100次

          b. 结果 :平均耗时 : 1毫秒

     5. 查询分页(Skip+Limit)

      a. 以 _id 排序,随机生成页数,每页100条数据,单线程循环100次

      b. 结果 :页数越大,耗时越高

            页数 10 : 平均耗时 5 毫秒

            页数 100: 平均耗时 28 毫秒

            页数 1000: 平均耗时 225 毫秒

            页数 10000: 平均耗时 1965 毫秒

    6. 查询分页(Maxid+Limit)

      a. 以 _id 排序,随机生成 Maxid ,以此为判断条件,每页100条数据,单线程循环100次

      b. 结果 :平均耗时 2 毫秒

            比 (Skip + Limit)的性能高非常多,且耗时不会随着页数增大而增大

            不过需要把上一次查询的最大 _id 作为条件且 _id 为 int 类型

     7. 删除

      a. 随机生成_id ,以此为判断条件,单线程循环100次

      b. 结果 : 平均耗时 1 毫秒

     8. 更新

      a. 随机生成实体,以此实体的 _id 为判断条件,单线程循环100次

      b. 结果 : 平均耗时 1 毫秒

     9. 结论 :

      a. 完全命中 _id 索引的操作都是非常快的,都在毫秒级

      b. 对硬件的要求, 对 CPU 要求不高, 硬盘 10M 写入以上, 内存 越高越好

          

  • 相关阅读:
    关于json解析和所需jar
    Solr初步使用
    Appium-desktop使用时的一些配置
    mac电脑安装和配置tomcat步骤
    maven-reportng插件依赖添加
    maven-surefire插件配置
    mac电脑的一些操作
    元素的多种延时等待(&页面的超时处理)
    Mac系统搭建java+selenium+testng环境
    爬虫简介与request模块
  • 原文地址:https://www.cnblogs.com/fzz2727551894/p/5315446.html
Copyright © 2011-2022 走看看