MongoDB详解(定义特点及功能应用)

MongoDB详解(定义特点及功能应用)-mikechen

MongoDB定义

MongoDB详解(定义特点及功能应用)-mikechen

MongoDB 是一个高性能、开源的文档型数据库,可用于替代统的关系型数据库或键/值存储方式。

 

MongoDB特点

  •  所用语言:C++;
  •  特点:保留了SQL一些友好的特性,比如:查询,索引;
  •  Master/Slave复制(支持自动错误恢复,使用 sets 复制);
  •  内建分片机制;
  •  可在服务器端执行任意的 javascript函数;
  •  update-in-place支持比CouchDB更好
  •  在数据存储时采用内存到文件映射;
  •  对性能的关注超过对功能的要求;
  •  在32位操作系统上,数据库大小限制在约2.5Gb
  •  空数据库大约占 192Mb
  •  采用 GridFS存储大数据或元数据,不是真正的文件系统;

 

MongoDB优点

1.更高的写负载,MongoDB拥有更高的插入速度;

2.处理很大的规模的单表,当数据表太大的时候可以很容易的分割表;

3.高可用性,设置M-S不仅方便而且很快,MongoDB还可以快速、安全及自动化的实现节点 (数据中心)故障转移;

4.快速的查询,MongoDB在启动后会将数据库中的数据以文件映射的方式加载到内存中,如果内 存资源相当丰富的话,这将极大地提高数据库的查询速度;

5.非结构化数据的爆发增长,增加列在有些情况下可能锁定整个数据库,或者增加负载从而 导致性能下降,由于MongoDB的弱数据结构模式,添加1个新字段不会对旧表格有任何影响, 整个过程会非常快速。

 

MongoDB缺点

1.不支持事务;

2.MongoDB占用空间过大 ;

3.MongoDB没有成熟的维护工具;

 

MongoDB功能

MongoDB作为一款通用型数据库,除了能够创建、读取、更新和删除数据之外,还提供了一系列不断扩展的独特功能。

1.索引

支持通用二级索引,允许多种快速查询,且提供唯一索引、复合索引、地理空间索引、全文索引。

2.聚合

支持聚合管道,用户能通过简单的片段创建复杂的集合,并通过数据库自动优化。

3.特殊的集合类型

支持存在时间有限的集合,适用于那些将在某个时刻过期的数据,如会话session。

4.文件存储

MongoDB并不具备一些在关系型数据库中很普遍的功能,如链接join和复杂的多行事务,省略这些的功能是处于架构上的考虑,或者说为了得到更好的扩展性,因为在分布式系统中这两个功能难以高效地实现。

 

MongoDB应用场景

1.适用于实时的插入、更新与查询的需求,并具备应用程序实时数据存储所需的复制及高度伸缩性;

2. 非常适合文档化格式的存储及查询;

3.高伸缩性的场景:MongoDB 非常适合由数十或者数百台服务器组成的数据库。

4.对性能的关注超过对功能的要求。

作者简介

陈睿|mikechen,10年+大厂架构经验,BAT资深面试官,就职于阿里巴巴、淘宝、百度等一线互联网大厂。

👇阅读更多mikechen架构文章👇

阿里架构 |双11秒杀 |分布式架构 |负载均衡 |单点登录 |微服务 |云原生 |高并发 |架构师

以上

关注作者「mikechen」公众号,获取更多技术干货!

后台回复架构,即可获取《阿里架构师进阶专题全部合集》,后台回复面试即可获取《史上最全阿里Java面试题总结

评论交流
    说说你的看法