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--分布式的高速缓存系统。
MongoDB学习系列(1)--入门介绍的更多相关文章
- MongoDB学习笔记:快速入门
MongoDB学习笔记:快速入门 一.MongoDB 简介 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统.在高负载的情况下,添加更多的节点,可以保证服务器性能.M ...
- .NET 4 并行(多核)编程系列之一入门介绍
.NET 4 并行(多核)编程系列之一入门介绍 本系列文章将会对.NET 4中的并行编程技术(也称之为多核编程技术)以及应用作全面的介绍. 本篇文章的议题如下: 1. 并行编程和多线程编程的区别. ...
- MongoDB学习系列(2)--使用PHP访问MongoDB
第一部分:介绍 在Windows上安装最新MongoDB步骤非常的简单,这里不做介绍.但是如果你安装的时候没有将MongoDB作为服务运行,每次你都要使用cmd切换到指定的目录下,然后在cmd中启动M ...
- MongoDB学习系列(3)--解决MongoDB Unexpected Shutdown问题
晚上准备继续学习PHP+MongoDB,点击Run_MongoDB_Service.bat文件,这个文件是我写的bat文件,就是快速启动MongoDB.但是命令行一闪而过,我很奇怪.昨天晚上写代码还是 ...
- MongoDB Auto-Sharding(自动分片)入门介绍
MongoDB是10gen团队开发的一款面向文档的NoSQL数据库.最近一年多以来,MongoDB被越来越多的大型网站应用到生产环境中,比较著名的有Foursquare, bit.ly, Source ...
- MongoDB 学习笔记之 入门安装和配置
下载MongoDB: 下载解压即可使用. 为了启动方便和统一管理, 在Mongo根目录下建立/data, /logs, /conf文件夹. 在conf文件夹下建立mongodb.conf 文件,基本配 ...
- Mongodb学习笔记(1)--入门
文档 多个键及关联的值有序的放置在一起就是文档,如"greeting":"Hello World!" 特点 文档中键值对是有序的 除了字符串还可以是其他类型:& ...
- SpringMVC学习记录一——入门介绍和入门程序
1 springmvc框架 1.1 什么是springmvc springmvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合. spr ...
- Logstash学习系列之插件介绍
Logstash插件获取方式 插件获取地址: https://github.com/logstash-plugins 在线安装: /plugin install logstash-input-jdb ...
随机推荐
- JQuery的一些简单功能
JQuery js的缺点总结 1.入口函数只能有一个,如果出现多个,后面的会覆盖掉前面的 2.代码容错性差,容易出错,出错会导致后面的代码不执行 3.存在浏览器兼容性,比如innerText在火狐浏览 ...
- 案例1.通过Jquery来处理复选框
实现以下功能: 1:选中第一个复选框,那么下面所有的复选框都选中,去除选中第一个复选框,下面的都不选中 2:当点击全选按钮,上面足球.篮球.游泳.唱歌 全部选中 3:当点击全不选按钮,上面四个全部取消 ...
- dvb标准
一.概念 DVB, 数字视频广播Digital Video Broadcasting的缩写, 是由DVB项目维护的一系列国际承认的数字电视公开标准.(欧标)二.分类DVB系统传输方式有如下几种: 卫星 ...
- SQL Server 2008中的代码安全<转>
一:存储过程加密与安全上下文 二:DDL触发器与登录触发器 三:通过PassPhrase加密 四:主密钥 五:非对称密钥加密 六:对称密钥加密 七:证书加密 八:透明加密(TDE) 将 TDE 保护的 ...
- 常用的107条Javascript
1. document.write( " "); 输出语句 2.JS中的注释为// 3.传统的HTML文档顺序是:document- >html- >( ...
- js Date学习
Date.parse()接收一个表示日期的字符串参数(参数错误时返回NaN),返回相应日期的毫秒数.(使用自 UTC(Coordinated Universal Time,国际协调时间)1970 年 ...
- Spring MVC 框架的架包分析,功能作用,优点
由于刚搭建完一个MVC框架,决定分享一下我搭建过程中学习到的一些东西.我觉得不管你是个初级程序员还是高级程序员抑或是软件架构师,在学习和了解一个框架的时候,首先都应该知道的是这个框架的原理和与其有关j ...
- Matlab 视频与图像之间的相互转换
matlab版本是2015b,其中更新了部分函数库之前网上相关程序不适用于新版本,在此提供适用于新版本的程序: 帧序列转换为视频 function video = frames2video(frame ...
- myeclipse tomcat内存溢出解决方法
Tomcat直接启动正常,通过myeclipse启动tomcat内存溢出.MyEclipse启动Tomcat无视catalina.bat中设置内存大小的问题.在 tomcat的catalina.bat ...
- 初试Office 365企业版E3
Microsoft Office 365 团队给了所有现任的MVP 12个月的微软 Office 365 企业 E3 订阅,今天激活账号并试用了一下,发现非常强大,本文简要介绍下Office 365 ...