NoSQL和MongoDB

 NoSQL(NoSQL=Not Only SQL),意即“不仅仅是SQL”。关系数据库关注在关系上,NoSQL关注在存储上。

发展背景

(1)传统关系型数据库遇到了性能瓶颈。

  • 高并发读写(High performance)
  • 对海量数据的高效率存储和访问(Huge Storage)
  • 对数据库的高可扩展性和高可用性(High Scalability && High Availability)

(2)关系数据库的很多主要特性无用武之地

  • 数据库事务一致性需求
  • 数据库的写实时性和读实时性需求
  • 对复杂的SQL查询,特别是多表关联查询的需求

分类

NoSQL和MongoDB      NoSQL和MongoDB

特点

  • 易扩展
  • 大数据量,高性能
  • 灵活的数据模型
  • 高可用

什么是MongoDB?

MongoDB的名字来自于“humongous”(不知道是什么),它是一个开源的,面向文档的数据库,并且是领先的非关系型数据库。

  MongoDB是由C++语言编写的,是一个跨平台的,面向文档的数据库,提供高性能,高可用性和可扩展性方便。

为什么要使用MongoDB?

1、Document-Oriented Storage(面向文档的存储)

2、Full Index Support(对任何属性可索引)

3、Replication&High Availability(复制和高可用性)

4、Auto-Sharding(自动分片)

5、Quering(丰富的查询)

6、Fast In-Place Updates(快速地更新)

MongoDB比RDBMS的优势

1、架构:MongoDB是文档型数据库,其中一个集合保存不同的不同的文件。字段的数量,内容和该文件的大小可以是不同于从一个文件复制到另一个。

2、一个单一的对象是结构清晰。

3、没有复杂的连接

4、深查询能力。 MongoDB支持动态查询使用基于文档的查询语言,如SQL几乎一样强大的文件

5、调优

6、易于规模化:MongoDB是易于扩展

7、不需要数据库对象的应用程序对象转换/映射

8、使用内部存储器存储(窗口)工作组,从而实现更快的数据存取

MongoDB在什么情况下使用?

1、大数据

2、内容管理和交付

3、移动和社交基础设施

4、用户数据管理

5、数据平台

上一篇:火狐下js的日期比较的方法


下一篇:MySQL 通过semi join 优化子查询