NoSQL和MongoDB
NoSQL(NoSQL=Not Only SQL),意即“不仅仅是SQL”。关系数据库关注在关系上,NoSQL关注在存储上。
发展背景
(1)传统关系型数据库遇到了性能瓶颈。
- 高并发读写(High performance)
- 对海量数据的高效率存储和访问(Huge Storage)
- 对数据库的高可扩展性和高可用性(High Scalability && High Availability)
(2)关系数据库的很多主要特性无用武之地
- 数据库事务一致性需求
- 数据库的写实时性和读实时性需求
- 对复杂的SQL查询,特别是多表关联查询的需求
分类
特点
- 易扩展
- 大数据量,高性能
- 灵活的数据模型
- 高可用
什么是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、数据平台