1.mongodb是基于文档的(BSON,类似json的键值对来存储),不是基于表格,易于水平扩展,将内部相关的数据放在一起能提高数据库的操作性能。如果你想新建一个新的文档类型,不用事先告诉数据库关于这些数据的结构,直接存到数据库中即可。易存储对象类型的数据。

2.与关系数据库的重大区别:可扩展的表结构,也就是说collection(表)中document(一行记录)所拥有的字段是可以变化的。

3.支持的查询语言非常强大,其语法有点类似面向对象的的查询语言。mongodb没有join语句。

传统关系数据库中join操作可能会产生笛卡尔积的虚拟表消耗较多系统资源,而mongodb的文档对象集合是任意结构,我们可以设计交货号的数据模型尽量避开这样的需求。

4.支持云计算特点:

原生的可扩展架构,通过启用分片和水平扩展,提供云存储所需的技术;

它的自动管理“副本集”,以保持数据的可用性和完整性;

聚集操作尤其是mapreduce可以在分片集群上进行操作,可为大数据分析做准备。

5.目前大多数nosql数据库不支持事务。原因:

大多数NoSQL系统都要能够跨多台不同的机器扩展,数据库中的数据分布在不同的机器上。一个事务中的写入操作可能会访问多个分区(在多台机器上)的数据,这就是“分布式事务”。

在分布式事务中确保原子性需要参与事务的机器相互协作。每一台机器都必须确定,事务在其它机器上能够成功提交。而且,需要有一个协议,确保事务写入操作涉及的机器在写入数据状态稳定之前都不会出现故障。

这个协作过程不仅会消耗大量的资源,而且会增加数据库请求延迟。更大的问题是,在协作过程完成之前,其它操作无法读取该事务写入的数据。并发事务延迟会导致其它与出现延迟的事务在时间上存在重叠的事务延迟,最终导致系统“阻塞(cloggage)”。

分布式事务所需的分布式协作会严重影响数据库系统的性能,包括事务吞吐量和事务延迟。因此,大多数NoSQ系统都选择了不支持事务

来自 <http://blog.csdn.net/kezhong_wxl/article/details/77000947>

复制集和分片是mongodb最具特色的功能:

①复制集实现了数据库的备份、自动故障转移。

至少包括primary节点、secondary节点、arbiter节点(仲裁节点)三个节点,primary节点负责数据的读写,secondary节备份primary节点的数据。当primary节点故障时,arbiter会从secondary节点中选择一个节点当primary节点。

②分片集群,实现分布式存储与高效的读写分离。

复制集中的每个成员是一个mongodb实例,但是分片上部署时,每一个片就是一个复制集。

一个分片不是就在一个机器上。部署的总体原则要去使每个片(复制集)中的primary节点,secondary节点和arbiter节点分开以及和配置服务器分开,当其中任意一个机器宕机的时候,集群都能正常运行。

mongodb简介和特性的更多相关文章

  1. Redis和Memcache和MongoDB简介及区别分析(整理)

    Redis和Memcache 一.Redis简介 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API.从2010年 ...

  2. MongoDB(一):NoSQL简介、MongoDB简介

    1. NoSQL简介 1.1 什么是NoSQL NoSQL(NoSQL= Not Only SQL),意即“不仅仅是SQL",是一项全新的数据库理念,泛指非关系型的数据库. 1.2 为什么需 ...

  3. MongoDB学习【一】—MongoDB简介和安装

    一.MongoDB简介 1.MongoDB是什么 MongoDB是一款强大.灵活.且易于扩展的通用型数据库,MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的 ...

  4. MongoDB 简介

    MongoDB 简介 介绍:MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案.特点:高性能.易部署.易使用,存储数据非常方便.主要功 ...

  5. 001.NoSQL及MongoDB简介

    一 NoSQL简介 二 分布式系统 三 CAP及BASE定律 以上均可参考: http://www.runoob.com/mongodb/nosql.html 四 MongoDB简介 参考:http: ...

  6. Mongodb 笔记01 MongoDB 简介、MongoDB基础知识、启动和停止MongoDB

    MongoDB 简介 1. 易于使用:没有固定的模式,根据需要添加和删除字段更加容易 2. 易于扩展:MongoDB的设计采用横向扩展.面向文档的数据模型使它能很容易的再多台服务器之间进行分割.自动处 ...

  7. MongoDB简介及基础知识

    MongoDB简介 一.MongDB是一个高性能,开源,无模式的文档型NosQL数据库.主要功能特性: 1.文件存储格式BSON(一种json的扩展) 2.模式自由,数据格式不受限了表的结构 3.支持 ...

  8. 树莓派4B踩坑指南 - (1)系统简介及特性

    系统简介及特性 19年双十一入坑树莓派4B,发现不是一般的坑,对于新出来的4B,从外包装壳,到接口,到内核,很多老的资料已经不再适用,又没有什么特别大的论坛可以讨论,只能自己一点点的摸索. 所以将遇到 ...

  9. Mongodb简介及基本操作

    一.简介 MongoDB是一款强大.灵活.且易于扩展的通用型数据库 MongoDB 是由C++语言编写的,是一个基于分布式文件存储的开源数据库系统. 在高负载的情况下,添加更多的节点,可以保证服务器性 ...

随机推荐

  1. 创建Spring Boot项目的几种方式总结

    一.我们可以使用Spring Initializr来创建SpringBoot项目. Spring Initializr从本质上来说就是一个Web应用程序,它能为你生成Spring Boot项目结构.虽 ...

  2. 关于搭建HTTPS服务器服务

    关于 HTTPS 的基本原理大家都已经不再陌生,今天和大家说说如何搭建一个支持 HTTPS 的服务端. 服务端的 HTTPS HTTPS 已经几乎成为了当前互联网推荐的通信方式,它能最大化保证信息传输 ...

  3. Spring MVC生成XML

    以下示例演示如何使用Spring Web MVC框架生成XML.首先使用Eclipse IDE,并按照以下步骤使用Spring Web Framework开发基于动态表单的Web应用程序: 创建一个名 ...

  4. python3----字符串中的字符倒转

    方法一,使用[::-1]: s = 'python' print(s[::-1]) 方法二,使用reverse()方法: n = list(s) n.reverse() print(''.join(n ...

  5. Laravel5.1 模型 --软删除

    软删除是比较实用的一种删除手段,比如说 你有一本账 有一笔记录你觉得不对给删了 过了几天发现不应该删除,这时候软删除的目的就实现了 你可以找到已经被删除的数据进行操作 可以是还原也可以是真正的删除. ...

  6. TensorFlow实战:Chapter-4(CNN-2-经典卷积神经网络(AlexNet、VGGNet))

    转载自:http://blog.csdn.net/u011974639/article/details/76146822 项目:https://www.cs.toronto.edu/~frossard ...

  7. lumen 事件

    今天需要实现日志功能,所有使用了一下lumen的event(事件)和listener(监听) Lumen事件:https://lumen.laravel-china.org/docs/5.3/even ...

  8. Python操作yaml文件

    基本的yaml语法 http://ansible-tran.readthedocs.io/en/latest/docs/YAMLSyntax.html YAML 还有一个小的怪癖. 所有的 YAML ...

  9. resize和reserve

    resize改变的实际的大小,reserve是容量即capacity 如果先指定capacity的大小,可以防止内存的重新分配,我感觉在分配实际的内存的时候会餐口capacity的大小,如果事先指定容 ...

  10. [Spring Data MongoDB]学习笔记--注册一个Mongo实例

    1. 通过Java based bean metadata @Configuration public class AppConfig { public @Bean Mongo mongo() thr ...