MongoDB学习系列(1)--入门介绍-阿里云开发者社区

开发者社区> 数据库> 正文

MongoDB学习系列(1)--入门介绍

简介:

1.MongoDB主要特性:

1.1文档数据模型

不需要和关系数据库一样,显示一个示 例文档数据时,需要多张表,并且需要这些表之间通过主外键关联起来。同时数据库不需要schema。所以对那些schema经常变化,或者web应用程序 开发初期来说,MongoDB有很大的优势。所有的数据都可以存在一条记录中,不需要为每个“列”设置数据类型。

1.2 支持即时查询,保留的关系型数据的即时查询的能力,不同于k-v数据库,只能查询键。

1.3 二级索引

MongoDB中的二级索引是通过B树实现的。通过允许使用多个二级索引,MongoDB让用户能对大量不同的查询进行优化。并且效果非常明显。

在MongoDB中,每个集合最多可以创建64个索引。支持索引有:升序、降序、唯一性、复合键索引、地理空间索引。

1.4 复制

MongoDB通过副本集(replica set)的拓扑结构提供复制功能。副本集将数据分布在多台机器上实现冗余。在服务器和网路故障时能提供自动故障转移。另外复制功能还能用于扩展数据库的读能力。

clip_image001

后面可以看到MongoDB在副本集和主从复制技术上的差异。

1.5 速度和持久性

写速度:在给定时间内数据库可以处理的插入、更新和删除操作的量。

持久性:数据库保持这些写操作结果不变的时间长短。

高容量、低价值的数据局(比如点击数和日志)使用fire-and-get模式写操作

对于重要的数据,更倾向于安全模式写操作。该模式强制要求数据库作出应答,确保数据库正确无误的接收到写操作。

1.6 数据库扩展

磁盘的IOPS(Input/output per second)

垂直扩展:提升单一节点的硬件配置

水平扩展:不是提升单一节点的硬件性能,而是将数据库分布到多态机器上。因为水平扩展可以使用普通x86+Linux机器,所以托管整个数据库集群的成本会显著提高。同时将数据库分布到多台机器上可以降低故障带来的影响。

最后,我查询了51cto上投票结果。显示MongoDB吸引开发者和dba最大的原因是:MongoDB的模式自由。不需要schema。个人觉得DBA最开心的是,MongoDB在复制、分片上容易部署和配置,同时有良好的故障迁移机制。

clip_image002

(图片来自51CTO)

作为开发者,技术日新月异,各种相关技术发展迅猛。开发者能学习和掌握以下三种数据库是最好的了:

1.MySQL--关系型数据库

2.MongoDB--面向文档结构的数据库(介于关系型数据和key-value数据库之间的一种数据库)

3.memcached--分布式的高速缓存系统。

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

分享:
数据库
使用钉钉扫一扫加入圈子
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

其他文章