mongoDB简介及关键特性
2016-09-29 13:46
369 查看
mongoDB是一个介于关系数据库和非关系数据库之间的开源产品,是最接近于关系型数据库的NoSQL数据库。它在轻量级JSON交换基础之上进行了扩展,即称为BSON的方式来描述其无结构化的数据类型。尽管如此它同样可以存储较为复杂的数据类型。本文对其进行简要描述以及列出其关键特性。
如下图所示
一、什么是mongoDB
开源的NoSQL数据库 用于存储非结构化数据 SQL中的绝大多数操作有对应的方式来实现 采用BSON描述数据类型
二、有哪些逻辑概念
mongoDB与SQL数据库脚本上大同小异,常见的逻辑对象通常包括 数据库,集合,文档,字段 索引,主键,聚合 以下为其与SQL的对照,详细可以参考:http://blog.csdn.net/leshami/article/details/52692912 SQL Terms/Concepts MongoDB Terms/Concepts ------------------- ----------------------------------- database database table collection row document or BSON document column field index index table joins embedded documents and linking primary key(指定一个唯一列或复合列) primary key(由_id自动生成) aggregation (e.g. group by) aggregation pipeline
如下图所示
文档 简单点说,可以理解为一个文本文件,不过这个文本文件有固定的格式,即为使用BSON的有序键值对。 对于接触或使用过关系型数据库的亲们,文档就相当于表中的一条记录。 MongoDB 的文档可以设置为使用不同的字段,并且相同的字段可以使用不同同的数据类型 文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档)。 MongoDB区分类型和大小写。 MongoDB的文档不能有重复的键。 文档的键是字符串。除了少数例外情况,键可以使用任意UTF-8字符。 示例 { author:"Leshami", age:25, email:"robinson.cheng@qq.com", score:{c:89,m:96,e:87}, country:"USA", books:["JS","C++","EXTJS","MONGODB"] blog:"http://blog.csdn.net/leshami" } 集合 多个文档组成一个集合,相当于关系型数据库的表。通常包括常规集合以及定长集合 集合存在于数据库中,无固定模式,即使用动态模式。也就是说集合不要求每一个文档使用相同的数据类型以及列 上述特性及成为free-schema,但通常还是建议将相关类型的文档组织或存放到一个集合里边。 在上面的图示中,即可以看到都多个不同的文档组成了一个集合 数据库 一个mongodb实例可以包含多个数据库 一个数据库可以包含多个集合 一个集合可以包含多个文档
三、有哪些关键特性
面向集合 易存储对象类型的数据,包括文档内嵌对象及数组,支持二进制及大型对象 模式自由 无需知道存储数据的任何结构定义,支持动态查询、完全索引 文档型 以键-值对形式存储,支持数组,支持文档之间嵌套 支持B+索引,全文索引,地理空间索引 C++实现 支持复制和故障恢复 可以通过配置复制集的方式实现节点间复制以及故障转移 基于复制集的读写分离以分散IO,提高性能 支持分片 可以基于片键实现分片,即将数据集分散在不同的节点 支持分片自动均衡以及手动均衡 可以结合复制集构建强大的分布式集群 易伸缩,支持水平的数据库集群,可动态添加额外的服务器 支持多平台 Windows,Linux,Mac OS-X,FreeBSD,Solaris 多语言驱动 Ruby,Java,C#,JavaScript,C,C++,PHP,Perl,Python 不需要额外的缓存 丰富的数据类型 mongoDB自身包含一个监视工具用于分析数据库操作的性能
四、适用哪些场景
更高的写负载 不可靠环境保证高可用 数据量超大规模,大尺寸,低价值的数据 基于位置的数据查询 非结构化数据的爆发增长 常用的场景包括 Web应用程序 敏捷开发 分析和日志(目标原子更新,定长集合) 缓存 可变Schema
五、不适用哪些场景
高度事务性,强一致性业务系统(银行,证券等) 传统商业智能应用 极为复制的业务逻辑查询
相关文章推荐
- 新数仓系列:MongoDB关键能力和特性梳理
- OC简介,OC特性,面向对象简介,创建一个类
- MongoDB入门简介
- REST 架构风格下的WCF特性简介
- MongoDB,无模式文档型数据库简介
- mongoDB--GridFS简介
- Mongodb - TTL(time to live)特性
- ECMAScript各版本简介及特性
- webpack3新特性简介
- Mongodb 笔记01 MongoDB 简介、MongoDB基础知识、启动和停止MongoDB
- spring的AOP简介与事务传播特性总结(转载)
- MongoDB3.0版本特性
- MongoDB-Manual-Master 读书笔记-简介及安装
- Apache Geode/GemFire功能特性简介(1)
- BW QUERY虚拟特性与关键值的使用
- Spark1.6新特性简介及个人的理解
- [挑战MVC极限]EasyJWeb-1.0特性抢先看之一简介
- 苹果通知推送服务(APNS)一些关键特性摘要
- Mongodb2.6升级修改以及新特性