由于MongoDB面对文档的存储方式能够拓展传统意义上面向行存储的不足之处。在同一行可以存储更多信息,相当于每一行都是一个对象。这对于某些特定场景下只使用行来存储更加的方便和节约空间。下面我们就来说说MongoDB它为什么这么受欢迎,它到底有哪些优势。

一、应用场景:

MongoDB是一个基于分布式文件存储的开源数据库系统。由于它在键/值存储方式(提供了高性能和高度伸缩性)以及传统的RDBMS系统(丰富的功能)架起一座桥梁,集两者的优势于一身。

1.MongoDB适用于以下场景:
  a.网站数据:mongo非常适合实时的插入,更新与查询,并具备网站实时数据存储所需的复制及高度伸缩性。
  b.缓存:由于性能很高,mongo也适合作为信息基础设施的缓存层。在系统重启之后,由mongo搭建的持久化缓存可以避免下层的数据源过载。
  c.大尺寸、低价值的数据:使用传统的关系数据库存储一些数据时可能会比较贵,在此之前,很多程序员往往会选择传统的文件进行存储。
  d.高伸缩性的场景:mongo非常适合由数十或者数百台服务器组成的数据库。
  e.用于对象及JSON数据的存储:mongo的BSON数据格式非常适合文档格式化的存储及查询。

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

二、特点:

1.面向集合存储,易于存储对象类型的数据。

2.模式自由。没有固定的模式,文档的键不会事先定义,也不会写死。所以更改数据模型相当简便。

3.支持动态查询。

4.支持完全索引,包含内部对象。

5.支持复制与对象恢复。

6.使用高效的二进制数据存储,支持大型对象(如视频等)

7.自动处理碎片,以支持云计算层次的扩展性。

8.文档存储格式为BSON。

9.支持当前大多数主流编程语言的驱动程序。

三、逻辑结构:

主要由:文档(document),集合(collection),数据库(database)三部分组成。

文档相当于关系型数据库的一条数据。

集合相当于关系型数据库的一个表。

一个数据库可拥有多个集合,每个集合可拥有多条数据。层次结构如下图:

MongoDB详解--MongoDB的应用场景及特性介绍相关推荐

  1. Java操作MongoDB详解

    Java操作MongoDB详解 1. MongoDB概述 1.1 MongoDB简介 1.2 MongoDB概念 2. MongoDB安装 2.1 MongoDB下载 2.2 MongoDB安装 2. ...

  2. redis 数据类型详解 以及 redis适用场景场合

    redis 数据类型详解 以及 redis适用场景场合 1. MySql+Memcached架构的问题 实际MySQL是适合进行海量数据存储的,通过Memcached将热点数据加载到cache,加速访 ...

  3. atitit.jQuery Validate验证框架详解与ati Validate 设计新特性

    atitit.jQuery Validate验证框架详解与ati Validate 设计新特性 1. AtiValidate的目标1 2. 默的认校验规则1 2.1. 使用方式 1.metadata用 ...

  4. python提取hbase数据_详解python操作hbase数据的方法介绍

    配置 thrift python使用的包 thrift 个人使用的python 编译器是pycharm community edition. 在工程中设置中,找到project interpreter ...

  5. python3.4和3.6的区别_详解Python3.6正式版新特性

    按照Python官网上的计划,Python3.6正式版期望在2016-12-16号发布,也就是这周五.从去年的5月份开始,Python3.6版本就已经动手开发了,期间也断断续续的发布了4个Alpha版 ...

  6. rsync的介绍及参数详解,配置步骤,工作模式介绍

    rsync的介绍及参数详解,配置步骤,工作模式介绍 rsync是类unix系统下的数据镜像备份工具.它是快速增量备份.全量备份工具. Sync可以远程同步,支持本地复制,或者与其他SSH.rsync主 ...

  7. python中squeeze函数_详解pytorch中squeeze()和unsqueeze()函数介绍

    squeeze的用法主要就是对数据的维度进行压缩或者解压. 先看torch.squeeze() 这个函数主要对数据的维度进行压缩,去掉维数为1的的维度,比如是一行或者一列这种,一个一行三列(1,3)的 ...

  8. mongodb创建用户名和密码_Python中使用MongoDB详解

    作者:Zarten知乎专栏:Python爬虫深入详解知乎ID: Zarten简介: 互联网一线工作者,尊重原创并欢迎评论留言指出不足之处,也希望多些关注和点赞是给作者最好的鼓励 ! 介绍 MongoD ...

  9. mongodb python 大于_Python中使用MongoDB详解

    作者:Zarten知乎专栏:Python爬虫深入详解知乎ID: Zarten简介: 互联网一线工作者,尊重原创并欢迎评论留言指出不足之处,也希望多些关注和点赞是给作者最好的鼓励 ! 介绍 MongoD ...

最新文章

  1. 2021-01-07 matlab数值分析 数值积分与数值微分 复合梯形公式 复合Simpson公式
  2. nacos作注册中心+feign接口调用进行服务提供和服务消费代码示例
  3. 深度剖析目标检测算法YOLOV4
  4. 2019年嵌入式开发系统详细分析告诉你是否还值得去学习
  5. 转载:mysql存储过程讲解
  6. 计算机网络「二」—— 物理层(多图详解)
  7. ubuntu 将某个目录下的文件复制到_Ubuntu系统简单美化
  8. WebLogic在Linux环境下安装
  9. 一文看懂全排列算法!
  10. 解决yolo+cudnn+opencv+gpu的一些问题
  11. [CS61b] Git设置、问题及解决方式
  12. matlab画中国,用matlab绘制中国地图
  13. layui表格时间格式化
  14. CodeForces 643 D.Bearish Fanpages(set+multiset)
  15. python实现触摸精灵功能_触摸精灵lua脚本实现微信群加好友功能
  16. 安卓app开发菜鸟教程!淘汰了80%的Android面试者,满满干货指导
  17. 完美卸载2011 绿色版软件下载 完美卸载官网
  18. JSON数据导出Excel表
  19. quartus 使用技巧
  20. 个人项目——找水王续

热门文章

  1. Scrapy:安装介绍
  2. GB51309实施后对于消防应急照明和疏散指示系统在城市隧道应用中的影响
  3. 【配电网重构】基于粒子群算法实现配电网重构含Matlab源码
  4. vue前端下载文件的几种方式
  5. CAD中的剪切怎么用----trim的用法?
  6. ws831改无线打印服务器,【详细图解】华为荣耀(WS831)路由器设置教程
  7. 林斤澜:温故知新——读《故事新编》
  8. 产品经理入职后要做的12件事
  9. 【软件测试】使用selenium工具对Web聊天室项目进行UI自动化测试
  10. linux服务器会话超时,解决SSH会话连接超时问题