MongoDB简介

                                       MongoDB简介

MongoDB是什么

MongoDB是一个使用C++编写的、开源的、面向文档的NoSQL(Not Only SQL)数据库,也是当前最热门的NoSql数据库之一。

NoSQL简介

NoSQL的意思是“不仅仅是SQL”,是目前流行的“非关系型数据库”的统称。常见的NoSQL数据库如:Redis、CouchDB、MongoDB、HBase、Cassandra等。

为什么需要NoSQL

简单的说,就是为了解决在web2.0时代,出现的三高要求:

  1. 对数据库高并发读写的需求。
  2. 对海量数据的高效率存储和访问的需求。
  3. 对数据库的高可扩展性和高可用性的需求。

而RDB里面的一些特性,在web2.0里面往往变得不那么重要,比如:

  1. 数据库事务一致性。
  2. 数据库的实时读写。
  3. 复杂的SQL查询,特别是多表关联查询。

CAP定理

CAP定理,又被称作布鲁尔定理(Eric Brewer)它指出对于一个分布式计算系统来说,不可能同时满足以下三点:

强一致性(Consistency):系统在执行过某项操作后仍然处于一致的,在分布式系统中,更新操作执行成功后所有的用户都应该读取到最新的值,这样的系统被认为具有强一致性。

可用性(Availability):每一个操作总是能够在一定的时间内返回结果。

分区容错性(Partition tolerance):系统在存在网络分区的情况下仍然可以接受请求并处理,这里网络分区是指由于某种原因网络被分成若干个孤立区域,而区域之间互不相通。

根据CAP原理将数据库分成了满足CA原则、满足CP原则和满足AP原则三大类:

CA:单点集群,满足一致性,可用性,通常在可扩展性上不太强大,比如RDB。

CP:满足一致性和分区容错性,通常性能不是特别高,如分布式数据库。

AP:满足可用性和分区容错性,通常可能对一致性要求低一些,如大多数的NoSQL。

BASE(Basically Available,Soft-state,Eventual consistency)

基本可用(Basically Available):系统能够基本运行、一直提供服务。

软状态(Soft-state):系统不要求一直保持强一致状态。

最终一致性(Eventual consistency):系统需要在某一时刻后达到一致性要求。

NoSQL的优点

  1. 扩展简单方便,尤其是水平横向扩展。
  2. 读写快速高效,多数都会映射到内存操作。
  3. 成本低廉,用普通机器,分布式集群即可。
  4. 数据模型灵活,没有固定的数据模型。

NoSQL的缺点

  1. 不提供对SQL的支持。
  2. 现有产品还不够成熟稳定,功能也还有待加强。

MongoDB特点

  1. 高性能、易于使用、易于扩展、功能丰富。
  2. 面向集合存储,模式自由。
  3. 支持动态查询,支持javascript表达式查询。
  4. 支持索引。
  5. 支持副本集复制和自动故障恢复。
  6. 自动处理分片。
  7. 支持二进制和大型对象数据。
  8. 文件存储格式为BSON(JSON的一种扩展)。
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值