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

MongoDB是一款为Web应用程序设计的面向文档结构的数据库系统。

MongoDB贡献者是10gen公司。地址:http://www.10gen.com

1.MongoDB主要特性:

1.1文档数据模型

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

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

1.3 二级索引

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

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

1.4 复制

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

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

1.5 速度和持久性

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

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

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

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

1.6 数据库扩展

磁盘的IOPS(Input/output per second)

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

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

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

(图片来自51CTO)

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

1.MySQL--关系型数据库

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

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏SAP最佳业务实践

SAP最佳业务实践:ETO–项目装配(240)-23分析项目当前状态

CN41N分析项目当前状态 在这个步骤中对项目的当前状态进行分析。你可以使用一个合适的报表分析预算、计划和实际成本、日期以及收入。 角色项目经理 1. 如果出现...

36140
来自专栏架构之路

大数据时代的技术hive:hive介绍

  我最近研究了hive的相关技术,有点心得,这里和大家分享下。   首先我们要知道hive到底是做什么的。下面这几段文字很好的描述了hive的特性:   1....

34740
来自专栏SAP最佳业务实践

SAP最佳业务实践:FI–现金管理(160)-4 F110创建演示数据-清算供应商发票

2.3.4 通过 F110 付款运行清算供应商发票 要执行该活动,使用此文档中的主数据运行应付帐款:自动付款 (158) 业务情景。 字段名称用户操作和值注释...

39650
来自专栏杨建荣的学习笔记

巧用闪回查询来分析事务延迟的问题(r9笔记第77天)

前段时间有个开发的同事向我咨询一个问题, 开发同事:Oracle会存在一个用户插入数据,已经提交了;但是另外一个用户还查询不到吗?都是同一张表 ...

25230
来自专栏数据和云

Oracle最重要的九大性能视图

摘要:Oracle数据库的性能优化一直以来都是DBA关注的焦点,在不同的版本中,Oracle都提供了相关的工具用于数据库的性能诊断,事实上这些工具都是通过对数据...

33260
来自专栏python开发教学

Oracle与Sql server的区别 一直搞不明白Oracle数据库和sql server的区别,今天我特意查资料把他们的区别整理出来

Oracle数据库:Oracle Database,又名Oracle RDBMS,或简称Oracle。是甲骨文公司的一款关系数据库管理系统。

16530
来自专栏数据和云

实战课堂:一则CPU 100%的故障分析处理知识和警示

编辑手记:在现实的生产环境中,DBA可能遭遇到各种各样的异常,或简单、或复杂,但是无一不考验DBA的经验和能力,在『实战课堂』栏目中,我们将整理和分享来自云和恩...

12730
来自专栏大数据和云计算技术

转载:云HBase小组成功抢救某公司自建HBase集群,挽救30+T数据

使用过开源HBase的人都知道,运维HBase是多么复杂的事情,集群大的时候,读写压力大,配置稍微不合理一点,就可能会出现集群状态不一致的情...

11020
来自专栏杨建荣的学习笔记

快速定位隐蔽的sql性能问题及调优(r5笔记第38天)

在前几天,有个开发同事问我一个问题,其实也算是技术救援,他说在有个job数据处理的频率比较高,在测试环境中很难定位出在哪有问题,而且速度也还能接受,但是在生产环...

37860
来自专栏杨建荣的学习笔记

DBA和开发同事的一些代沟(一)(r7笔记第17天)

DBA同学在工作中不可避免和开发同学打交道,和开发的同学在交流中还是有不少的小插曲,有些想想也蛮有意思,但是有些是痛点。 我举几个例子来说明,可能比较片面,但是...

36550

扫码关注云+社区

领取腾讯云代金券