Mongodb简介

1. 什么是NoSQL

NoSQL是英文Not Only SQL的缩写,即中文“不仅仅是SQL”。是非关系型数据存储的广义定义,通常以key-value形式存储数据,没有表结构。
说明:“不仅仅是SQL”指不适用SQL语句的数据库.

非关系型的认识

关系模型指的就是二维表格模型,而一个关系型数据库就是由二维表及其之间的联系所组成的一个数据组织。
关系模型中常用的概念:

  • 关系:可以理解为一张二维表,每个关系都具有一个 关系名,就是通常说的表名
  • 元组:可以理解为二维表中的一行,在数据库中经常被称为记录
  • 属性:可以理解为二维表中的一列,在数据库中经常被称为字段

非关系型数据库提出另一种理念,例如,以键值对存储,且结构不固定,每一个元组可以有不一样的字段,每个元组可以根据需要增加一些自己的键值对,这样就不会局限于固定的结构,可以减少一些时间和空间的开销。使用这种方式,用户可以根据需要去添加自己需要的字段.

2. NoSQL的优点

  1. 易扩展(去掉关系数据库之间的数据关系,数据之间无关系,在架构层面也带了扩展能力)
  2. 快速的读写(sql语句不用解析,功能相对单一)
  3. 成本低廉(开源的软件)
  4. 架构灵活,没有复杂的关系(表与表之间不存在关系)

3. NoSQL的缺点

  1. 没有统一的标准
  2. 没有正式的官方支持
  3. 支持的特性不够丰富,现有产品所提供的功能比较有限,大多数NoSQL数据库产品不支持事务,不能像MS SQl Server和oricale一样,提供各种附加功能(如bi和报表)

4. mongodb的存储方式

  1. mongodb是将数据存储到硬盘上
  2. mongodb内部支持的js解释器,我们可以在mongodb中直接写js代码
  3. mongodb存数据的时候是key->value形式:(js中的key-value就是对象{key:value})
  4. mongodb中分为数据库,集合(相当于mysql中的表),文档(相当于mysql的记录)

5. mongodb的使用场景

  1. 因为Mongodb的扩展非常容易(可以实现分表,读写分离,分布式存储的实现非常容易,简单配置一下即可)
  2. mogondb比较适合存储数据结构简单,数据量非常大,高并发读写的操作
  3. Mogondb在保存关系比较复杂时的数据比较不容易,不支持连表操作.如果要操作一对一,多对一的数据关系则不如MySQL方便
  4. 可以用于存储(新闻,日志,投票),这种数据结构简单,但是数据量比较大的