MongDB 简介

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定理, 又被称作布鲁尔定理(Eric Brewer)
它指出对于一个分布式计算系统来说,不可能同时满足以下三点:
1:强一致性(Consistency):系统在执行过某项操作后仍然处于一致的,在分布式系统中,更新操作执行成功后所有的用户都应该读取到最新的值,这样的系统被认为具有强一致性
2:可用性(Availability):每一个操作总是能够在一定的时间内返回结果
3:分区容错性(Partition tolerance):系统在存在网络分区的情况下仍然可以接受请求并处理,这里网络分区是指由于某种原因网络被分成若干个孤立区域,而区域之间互不相通
根据CAP原理将数据库分成了满足CA原则、满足CP原则和满足AP原则三大类:
1:CA:单点集群,满足一致性,可用性,通常在可扩展性上不太强大,比如RDB
2:CP:满足一致性和分区容错性,通常性能不是特别高,如分布式数据库
3:AP:满足可用性和分区容错性,通常可能对一致性要求低一些,如大多数的NoSQL
BASE(Basically Available,Soft-state,Eventual consistency )
1:基本可用(Basically Available):系统能够基本运行、一直提供服务。
2:软状态(Soft-state):系统不要求一直保持强一致状态。

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

NoSQL的优点
扩展简单方便,尤其是水平横向扩展(纵向扩展是指用更强的机器;横向扩展是指把数据分散到多个机器)
读写快速高效,多数都会映射到内存操作
成本低廉,用普通机器,分布式集群即可
数据模型灵活,没有固定的数据模型
NoSQL的缺点
不提供对SQL的支持
现有产品还不够成熟稳定,功能也还有待加强
MongoDB特点
高性能、易于使用、易于扩展、功能丰富
面向集合存储,模式自由
支持动态查询,支持javascript表达式查询
支持索引
支持副本集复制和自动故障恢复
自动处理分片
支持二进制和大型对象数据
文件存储格式为BSON(JSON的一种扩展)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值