天天看点

mongoDB专题一

MongoDB不同于传统关系型数据库,它属于noSQL数据库。下面我们从为什么,是什么,怎么用,安装等方便讲解MongoDB。

1. 为什么要NoSQL

关系型数据库难以克服的问题:

①高并发读写(数据库事务的一致性需求)

②海量数据的高效率存储与访问(数据库的写实时性和读实时性需求)

③高可扩展和高可用性(对复杂的SQL查询,特别是多表关联查询的需求)

而NoSQL的特点是:①处理超大量的数据;②运行在便宜的PC服务器集群上;③打破性能瓶颈;④操作简单;⑤开源支持

MongoDB是一个介于关系型数据库与非关系型数据库之间的产品,是非关系数据库当中功能最丰富的,最像关系型数据库的。他支持的数据结构非常松散,是类似于JSON的BSON格式,因此可以存储比较复杂的数据类型。MongoDB最大的特点是他支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似于关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。它是一个面向集合的,模式自由的文档型数据库。

2. MongoDB中的基本概念:

DB(库)-数据库

Collection(集合)-表

Document(文档)-行

Field(字段)-列

Index(索引)-索引

PrimaryKey(主键)-主键

3. MongoDB的应用场景

①应用不需要事务及复杂Join支持

②新应用,需求会变,数据模型无法确定,想快速迭代开发

③应用需要2000-3000以上的读写QPS(更高也可以)

④应用需要TB甚至PB级别数据存储

⑤应用发展迅速,需要能快速水平扩展

⑥应用要求存储的数据不丢失

⑦应用需要99.999%高可用

⑧应用需要大量的地理位置查询、文本查询

满足以上两个条件,就可以考虑选择MongoDB了。

MongoDB目前已经渗透到游戏、物流、电商、内容管理、社交、物联网、视频直播等领域。

那什么场景不能使用MongoDB呢?高度事务性系统(像金融等)。