美文网首页
MongoDB优化

MongoDB优化

作者: c0f81c84743b | 来源:发表于2018-11-13 16:13 被阅读0次
  • MongoDB优缺点概述:
    • 经济的横向扩展,以增加分区的方式将数据库拆成不同的区块,来分布到不同的机器。
    • 脱离了横向扩展的弊端管理困难的问题
  • NoSQL的设计方式:操作数据灵活
  • 预设计模式、动态模式
    • 预设计模式:
      • 传统数据库设计
      • 需要对数据库表中的字段名称、字段类型进行规定。插入不符合设计的数据会失败
    • 动态模式:
      • 动态追加,在创建时不会对数据类型进行限定
  • 范式化与反范式化
    • 范式化:将数据分散到不同表,利用关系模型进行关联
      • 优点:方便增、删、改,后期修改不会影响与其关联的数据
    • 反范式化:将当前文档的数据集中放在本表
      • 优点:查询性能高
    • 完全分离(范式化设计)
      • 更新效率高、查询效率低
    • 完全嵌套(范范式化设计)
      • 查询效率高、更新效率低
    • 部分内嵌(折中)
  • 性能、用户量
    • 成反比
    • 页面加载10S,用户会离开
  • 填充因子:
    • MongoDB为文档扩展预留的增长空间
    • 文档的移动非常消耗性能,频繁移动会增加系统负担
    • 实际开发中最可能让文档体积变大的因素是数组
    • 如果文档会频繁修改并增大空间,需要考虑填充因子
    • 两种方案:
      • 增加初始分配空间

        • usePowerOf2Sizes属性,为true时,系统会将后续插入的文档,初始空间分配为2的N次方
        • 适用于会频繁变更的集合
        • 会给每个文档留有更大空间,但空间的分配会变低效,如果集合在更新时不会频繁移动,会导致写入速度相对变慢
      • 利用数据强行将初始分配空间扩大

        “stuff”: “ggggggggggggggggggggggggggggggggggggggggggg"

      • 对这个文档进行增长式修改时,删掉此字段即可,字段名、值随意添加

  • 准确利用索引
    • 索引越少越好

      • 建立索引,系统会添加一个索引表,用于索引指定的列,但如果对已建立的索引的列进行插入或修改,数据库就需要对原来的索引表进行重新排序,很消耗性能
    • 隐式索引:如果想要排序的字段包含在已建立的复合索引中,则无需重复建立索引

      例:建立复合索引
       db.test.ensureIndex({"age": 1,"no": 1,"name": 1 })
       db.test. find().sort("age": 1,"no": 1)
       db.test.find().sort("age": 1)
      
    • 翻转索引:在排序查询时无需考虑索引列的方向

      db.test.ensureIndex({"age": 1})

      • 例如这个例子中我们在查询时可以将排序条件写为"{'age': 0}",依旧不会影响性能
    • 索引列颗粒越小越好

      • 索引列中每个数据的重复数量称为颗粒,也叫索引的基数。
      • 在建索引时尽量将数据颗粒小的列放在索引左侧

相关文章

  • MongoDB从入门到优化(详细到不行)

    MongoDB从入门到优化

  • MongoDB学习报告(二)

    概述 MongoDB索引管理MongoDB查询优化 MongoDB索引管理 单键索引中的每一项都应该对应被索引文档...

  • MongoDB优化

    MongoDB优缺点概述:经济的横向扩展,以增加分区的方式将数据库拆成不同的区块,来分布到不同的机器。脱离了横向扩...

  • MongoDB优化

    MongoDB执行计划: Mongodb索引和执行计划 hint 慢查询 - 张小贱1987 - 博客园 mong...

  • MongoDB优化

    备注:MongoDB 4.2 版本 一.查询分析器 1.1 启用查询分析器 1.2 禁用查询分析器 1.3 记录慢...

  • MongoDB移动功能

    概述 MongoDB Mobile是MongoDB数据库的较小版本,经过优化可在移动和物联网设备上运行。以下部分定...

  • Mongodb简单优化

    MongoDB WiredTiger引擎调优技巧 调优Cache Size WiredTiger最重要的调优参数就...

  • mongodb 索引优化

    公司爬虫项目中用到了mongodb,最近有一个复杂查询,速度很慢需要优化,决定趁着这个机会好好学习一下mongod...

  • MongoDB性能优化

    一.范式化与反范式化范式的优点:1)范式化的数据库更新起来更加快;2)范式化之后,只有很少的重复数据,只需要修改更...

  • mongodb索引及查询优化分析

    Mongodb索引及查询优化分析 创建索引 参数说明:keys: {FieldNameOne:ascending,...

网友评论

      本文标题:MongoDB优化

      本文链接:https://www.haomeiwen.com/subject/omslfqtx.html