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)的拓扑结构提供复制功能。副本集将数据分布在多台机器上实现冗余。在服务器和网路故障时能提供自动故障转移。另外复制功能还能用于扩展数据库的读能力。

后面可以看到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--分布式的高速缓存系统。

时间: 2024-09-19 19:21:54

MongoDB学习系列(1)--入门介绍的相关文章

MongoDB学习系列(2)--使用PHP访问MongoDB

第一部分:介绍 在Windows上安装最新 MongoDB步骤非常的简单,这里不做介绍.但是如果你安装的时候没有将MongoDB作为服务运行,每次你都要使用cmd切换到指定的目录下,然后在 cmd中启动MongoDB服务,然后再使用另外一个cmd运行Javascript Shell.所以我自己创建了2个.bat文件来简化这个操作. Run_MongoDB_Service.bat代码为: d: cd d:\mongodb\bin mongod --dbpath d:\mongodb\data Ru

MongoDB学习系列(3)--解决MongoDB Unexpected Shutdown问题

晚上准备继续学习 PHP+MongoDB,点击Run_MongoDB_Service.bat文件,这个文件是我写的bat文件,就是快速启动MongoDB.但是命令 行一闪而过,我很奇怪.昨天晚上写代码还是正常的,怎么今天用就不正常了.我只好手动敲一遍命令.界面好像和之前不一样,个人觉得应该是出错了.错误界面 如下: 主要信息有2个: 1.Unclean shutdown detected. 2.可以恢复的参考:http://docs.mongodb.org/manual/tutorial/rec

.NET 4 并行(多核)编程系列之一入门介绍

本系列文章将会对.NET 4中的并行编程技术(也称之为多核编程技术)以及应用作全面的介绍. 本篇文章的议题如下: 1. 并行编程和多线程编程的区别. 2. 并行编程技术的利弊 3. 何时采用并行编程 1.并行编程和多线程编程的区别. 1.1并行编程. 现在随着多核计算机的普及,并行编程技术,也就是多核编程技术也逐渐称为开发的主流.为此,在.NET 4 中就引入了"并行编程".在.NET 4 中一些列的Library和类为并行编程提供了支持,如: Task Parallel Librar

一起谈.NET技术,.NET 4 并行(多核)编程系列之一入门介绍

本系列文章将会对.NET 4中的并行编程技术(也称之为多核编程技术)以及应用作全面的介绍. 本篇文章的议题如下: 1. 并行编程和多线程编程的区别. 2. 并行编程技术的利弊 3. 何时采用并行编程 1.并行编程和多线程编程的区别. 1.1并行编程. 现在随着多核计算机的普及,并行编程技术,也就是多核编程技术也逐渐称为开发的主流.为此,在.NET 4 中就引入了"并行编程".在.NET 4 中一些列的Library和类为并行编程提供了支持,如: Task Parallel Librar

.NET“.NET研究” 4 并行(多核)编程系列之一入门介绍

本系列文章将会对.NET 4中的并行编程技术(也称之为多核编程技术)以及应用作全面的介绍. 本篇文章的议题如下: 1. 并行编程和多线程编程的区别. 2. 并行编程技术的利弊 3. 何时采用并行编程 1.并行编程和多线程编程的区别. 1.1并行编程. 现在随着多核计算机的普及,并行编程技术,也就是多核编程技术也逐渐称为开发的主流.为此,在.NET 4 中就引入了"并行编程".在.NET 4 中一些列的Library和类为并行编程提供了支持,如: Task Parallel Librar

.NET 4并行(多核)编程系列之一 入门介绍

本篇文章的议题如下: 1. 并行编程和多线程编程的区别. 2. 并行编程技术的利弊 3. 何时采用并行编程 1.并行编程和多线程编程的区别. 1.1并行编程. 现在随着多核计算机的普及,并行编程技术,也就是多核编程技术也逐渐称为开发的主流.为此,在.NET 4 中就引入了"并行编程".在.NET 4 中一些列的Library和类为并行编程提供了支持,如: Task Parallel Library,Parallel LINQ等. 其实在.NET 1.0中就有了并行编程技术的一些实现--

Asp.Net MVC5入门学习系列⑦

原文:Asp.Net MVC5入门学习系列⑦ 接着上篇结尾所说,如果开发中刚才遇到Model需要添加或者减少字段/属性的话,但是刚好你也利用EF的Code frist通过Model生存的数据库,这时改怎么办?   添加一个字段   我们现在要给Movie实体模型类添加一个评价的字段该怎么搞!我们知道我们默认使用EF code frist生存的数据库是同步性的,这样才能便于我们更好的开发,如果实体模型和数据库不同步的话,实体框架应该会抛出异常.  code frisr设置模型库迁移  在VS里我们

[Python爬虫] scrapy爬虫系列 <一>.安装及入门介绍

        前面介绍了很多Selenium基于自动测试的Python爬虫程序,主要利用它的xpath语句,通过分析网页DOM树结构进行爬取内容,同时可以结合Phantomjs模拟浏览器进行鼠标或键盘操作.但是,更为广泛使用的Python爬虫框架是--Scrapy爬虫.这是一篇在Windows系统下介绍 Scrapy爬虫安装及入门介绍的相关文章.         官方 Scrapy  :http://scrapy.org/         官方英文文档:http://doc.scrapy.or

Gradle学习系列之一——Gradle快速入门(转)

  这是一个关于Gradle的学习系列,其中包含以下文章: Gradle快速入门 创建Task的多种方法 读懂Gradle语法 增量式构建 自定义Property 使用java Plugin 依赖管理 构建多个Project 自定义Task类型 自定义Plugin   请通过以下方式下载本系列文章的Github示例代码: git clone https://github.com/davenkin/gradle-learning.git     和Maven一样,Gradle只是提供了构建项目的一