1. MongoDB 介绍
1.1. NOSQL简介
- NoSQL是Not Only SQL的缩写,它指的是非关系型的数据库,是以key-value形式存储,和传统的关系型数据库不一样,不一定遵循传统数据库的一些基木要求,比如说遵循SQL标准、ACID属性、表结构等等,这类数据库主要有以下特点:非关系型的、分布式的、开源的、水平可扩展的。
1.2. 为什么要用NoSQL
- 随着互联网的不断发展,各种类型的应用层出不穷,所以导致在这个云计算的时代,对技术提出了更多的需求。虽然关系型数据库己在业界的数据存储方面占据不可动摇的地位,但是由于其天生的几个限制,使其很难满足上面这儿个需求:扩展困难、读写慢、成木高、有限的支掉容量。但是NoSQL关注的是对数据高并发地读写和对海量数据的存储等,与关系型数据库相比,它们在架构和数据模型方而做了"减法",而在扩展和并发等方面做了"加法"
1.3. NoSQL数据库的优缺点
- 在优势方面,主要体现在下而这儿点:
- 简单的扩展
- 快速的读写
- 低廉的成本
- 灵活的数据模型
- 在不足方而,常见主要有下面这儿点:
- 不提供对SQL的支持
- 支持的特性不够丰富
- 现有产品的不够成热
1.4. MongoDB简介
-
以json格式的key-value键值对形式存储。
-
MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的,语法有点类似Javascript面向对象的查询语句,它是一个面向集合的,模式自由的文档型数据库。
-
面向集合(Collenction-Orented)
- 意思是数据被分组存储在数据集中被称为一个集合(Collenction).每个集合在数据库都有一个唯一的标识名,并且可以包含无限数目的文档。集合的概念类似关系型数据库里的表,不同的是它不需要定义任何模式。
-
模式自由(schema-free)
-
意思是集合里面没有列和行的概念,下面两个记录可以存在于同一个集合里面:
{"name:"m ongo"} {"age".7:25}
-
-
文档型(documents)
- 意思足我们存储的数据是键-值对的集合,键是字符串,值可以是数据类型集合里的任意类型,包括数组和文档,每一个文档相当于关系型数据库中的一条记录。
1.5. MongoDB特性
-
MongoDB的特点是高性能、易部署、易使用,存储数据非常方便,主要特性有:
- 而向集合存储,易于存储对象类型的数据
- 模式自由
- 支持动态查询
- 支持完全索引,包含内部对象
- 支持复制和故障恢复
- 使用高效的二进制数据存储,包括人型对象(如视频等)
- 自动处理碎片,以支持云计算层次的扩展性
- 文件存储格式BSON(一种JSON的扩展,二进制形式的JSON)
-
适用场景:
- 持久化缓存层
- 高效的实时性
- 用于对象及JSON数据的存储
- 高伸缩性的场景
- 大尺寸,低价值的数据存储
-
不适用场景:
- 要求高度事务性的系统。
- 传统的商业智能应用。
- 复杂多表查询。