MongoDB是一款开源的分布式架构的NoSQL数据库管理系统。在前面的NoSQL和SQL对比学习中,我们知道了NoSQL数据库系统和传统的RDBMS的不同和优点

1、MongoDB优点

可以简单列举MongoDB一些明显的主要的优点

  • 速度:MongoDB比一般的关系型数据库快很多,作为面向文档的NoSQL数据库,MongoDB可以通过索引使访问文档变得很容易而且快速
  • 分片:MongoDB另外一个优势是允许用户存储大量的数据,其通过分片的方式将数据分发到多个服务器上。
  • 灵活性:因为MongoDB是非结构化的数据库系统,而且多种数据类型,所以不需要像关系型数据那样,进行特别的表结构设计,存储数据更加灵活
  • 分布式:MongoDB数据库默认支持分布式,内带分布式的解决方案

2、MongoDB局限性

  • 不支持连接:与支持连接的理性数据库不同,MongoDB 不支持。尽管可以通过手动编码来添加连接功能,但执行起来可能会很慢并影响性能。
  • 数据大小有限制:MongoDB允许的文档最大值为16MB
  • 不能无限嵌套:MongoDB的数据格式是BSON的,但是其不支持无限的嵌套,用户不能超过100级的文档嵌套
  • 高内存:MongoDB会存储每个值对的键名。它还受到数据冗余的影响,因为它缺乏连接的功能。这会导致高内存使用率。
  • 不支持业务复杂查询:MySQL这些类型数据库都可以进行表连接等等复杂业务查询,MongoDB是文档型的数据库,所以不支持联表(Collection)查询

3、适用场景

归纳了MongoDB一些比较明显的特征后,我们可以知道MongoDB的一些适用场景。

在MongoDB官网也会列举了MongoDB的适用场景:

  • 1)网站实时数据:MongoDB 非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及
    高度伸缩性。
  • 2)数据缓存:由于性能很高,MongoDB 也适合作为信息基础设施的缓存层。在系统重启之后,由 MongoDB
    搭建的持久化缓存层可以避免下层的数据源过载。
  • 3)大尺寸、低价值数据存储:使用传统的关系型数据库存储一些数据时可能会比较昂贵,在此之前,很
    多时候程序员往往会选择传统的文件进行存储。
  • 4)高伸缩性场景:MongoDB 非常适合由数十或数百台服务器组成的数据库。MongoDB 的路线图中已经包
    含对 MapReduce 引擎的内置支持。
  • 5)对象或 JSON 数据存储:MongoDB 的 BSON 数据格式非常适合文档化格式的存储及查询。

4、不适用场景

  • 1)高度事务性系统:例如银行或会计这些金融系统。传统的关系型数据库目前还是更适用于需要大量原子性复杂事务的应用程序。
  • 2)传统的商业智能应用:针对特定问题的 BI 数据库会对产生高度优化的查询方式。对于此类应用,关系型可能是更合适的选择。

所以,对于需要复杂 SQL 查询的问题。MongoDB是不太适合的,在技术选项上需要根据业务场景和公司实际情况选择合适的数据库,关系型数据库和NoSQL数据库各有优缺点,应该根据实际场景合理选择数据库

5、参考资料

  • MongoDB应用场景:https://hevodata.com/learn/mongodb-use-case/
  • MongoDB 官网地址:https://www.mongodb.com/
  • MongoDB 官方英文文档:https://docs.mongodb.com/manual/
  • MongoDB 各平台下载地址:https://www.mongodb.com/download-center#community

MongoDB系列之适用场景和不适用场景相关推荐

  1. MongoDB系列之学习笔记教程汇总

    1.什么是MongoDB? MongoDB系列之SQL和NoSQL的区别 MongoDB系列之什么是非关系型数据库 MongoDB系列之MongoDB基本概念 MongoDB系列之适用场景和不适用场景 ...

  2. 毕设(一):基于WebGL(Cesium+MongoDB+NodeJS)下的三维城市室内外场景可视化+属性管理

    系列文章目录 毕设(一):基于WebGL(Cesium+MongoDB+NodeJS)下的三维城市室内外场景可视化+属性管理 文章目录 系列文章目录 前言 一.前期准备 二.创建express工程项目 ...

  3. mongodb系列教程

    mongodb系列教程 ttlsa教程系列之mongodb-(一)mongodb介绍 ttlsa教程系列之mongodb--(二)mongodb安装 ttlsa教程系列之mongodb--(三)mon ...

  4. 移远通信新一代LTE智能模组SC200E系列,以强大性能赋能多场景转型

    全球领先的物联网整体解决方案供应商移远通信今日宣布,其全新LTE Cat 4智能模组SC200E系列正式面世.作为新一代入门级智能模组的优秀代表,SC200E系列凭借强大的运行性能.丰富的多媒体功能. ...

  5. Android官方开发文档Training系列课程中文版:动画视图之场景创建

    原文地址:http://android.xsoftlab.net/training/transitions/scenes.html 场景存储了View层级的状态,包含所有的View及View的属性.转 ...

  6. 搭建LoadRunner中的场景(三)场景的执行计划

    所谓场景操作,包括初始化用户组.启动用户组各用户以及停止虚拟用户的全过程.依据设置不同,执行过程中可以最多有5类操作,分别是启动用户组(start group).初始化(Initialize).启动虚 ...

  7. [vue] 分别说说vue能监听到数组或对象变化的场景,还有哪些场景是监听不到的?无法监听时有什么解决方案?

    [vue] 分别说说vue能监听到数组或对象变化的场景,还有哪些场景是监听不到的?无法监听时有什么解决方案? 无法监听时的方案: 数组:改变数组的值:this.$set() 改变数组长度:arr.sp ...

  8. 小说中场景的功能_场景在小说中的作用

    文 | 彼岸晓吾 / Part 01 写场景最厉害的作家有余华,莫言和村上. 初学写作者最容易犯的毛病是不会写场景,不了解场景的意义所在.很多写手以为,只要把自己的意思表达出来,自然会形成一篇文章或一 ...

  9. 在unity用shaderGraph做出类似动物之森的柱面场景,甚至球面场景。

    在unity用shaderGraph做出类似动物之森的柱状场景,甚至球状场景. 这个是模仿油管上NotSlot的视频https://www.youtube.com/watch?v=SOK3Ias5Nk ...

  10. 基于拉丁超立方抽样的风,光,负荷场景生成方法 风电功率场景生成 ,光伏功率场景生成,负荷场景生成

    基于拉丁超立方抽样的风,光,负荷场景生成方法 风电功率场景生成 ,光伏功率场景生成,负荷场景生成 通过后向场景削减BR得到典型场景及其概率 提供参考文献,完美复现! 语言:MATLAB ID:6430 ...

最新文章

  1. springboot整合liquibase入门实例
  2. MyBatis延迟加载和缓存(4)
  3. iOS 文件和数据管理 (可能会删除本地文件储存)
  4. 大一新生计算机课word知识,大学新生计算机基础分层考试结果探析与启发.doc
  5. 此人提出平行线可以相交遭嘲讽,郁郁而终,12年后却被认可
  6. for in和for of的区别(转)
  7. Java常见加密方式
  8. 阿里大淘系模型治理阶段性分享
  9. 968. 监控二叉树(每日一难phase2--day17)
  10. 杭州学车 富阳场口考场考试 经验分享
  11. Linux 文件颜色代表含义
  12. linux boot efi 大小,/boot/efi。
  13. 人民网首届内容科技大赛 视界云荣膺三甲晋级决赛
  14. 【STM32】使用STM32提供的DSP库进行FFT(附详细代码)
  15. 乌卡时代下,企业供应链管理体系的应对策略
  16. python 模拟键盘输入组合键_Python 模拟键盘输入
  17. 免费期刊下载——超星发现
  18. mac 硬盘未正常推出解决办法
  19. 用VUI提升用户体验
  20. Java语言基础(笔记)

热门文章

  1. STM32定时器编码器模式实现直流有刷电机测速(HAL库)
  2. 传统型编码器测速方案
  3. [附源码]Java计算机毕业设计SSM高校科研项目申报管理信息系统
  4. svchost进程解惑
  5. Java创建型设计模式——建造者模式
  6. 理想L9爆火背后,中国汽车厂商正在改变世界汽车格局
  7. 封装一个全局使用的二次确认弹窗
  8. RFID托盘管理,实现物流仓储全过程跟踪
  9. 超强实时跟踪系统PP-Tracking学习记录
  10. CV2视频剪辑,从一个长视频中截取多个视频片段