前言:之前一直只是简单了解MongoDB,而且是随便看看的那种,今天决定好好的整理一下,以便自己能  温故而知新

1.MongoDB是什么

MongoDB 是一个高性能,开源,无模式的文档型数据库,开发语言是C++。它在许多场景下可用于替代统的关系型数据库或键/值存储方式。

2.MongoDB特点

1、所用语言:C++
2、特点:保留了SQL一些友好的特性(查询,索引)。
3、使用许可: AGPL(发起者: Apache)
4、协议: Custom, binary( BSON)
5、Master/slave复制(支持自动错误恢复,使用 sets 复制)
6、内建分片机制
7、支持 javascript表达式查询
8、可在服务器端执行任意的 javascript函数
9、update-in-place支持比CouchDB更好
10、在数据存储时采用内存到文件映射
11、对性能的关注超过对功能的要求
12、建议最好打开日志功能(参数 --journal)
13、在32位操作系统上,数据库大小限制在约2.5Gb
14、空数据库大约占 192Mb
15、采用 GridFS存储大数据或元数据(不是真正的文件系统)

3。优点

、更高的写负载,MongoDB拥有更高的插入速度。
、面向文档存储(类JSON数据模式简单而强大)
、处理很大的规模的单表,当数据表太大的时候可以很容易的分割表。
、高可用性,设置M-S不仅方便而且很快,MongoDB还可以快速、安全及自动化的实现节点 (数据中心)故障转移。
、快速的查询,MongoDB支持二维空间索引,比如管道,因此可以快速及精确的从指定位置 获取数据。MongoDB在启动后会将数据库中的数据以文件映射的方式加载到内存中。如果内 存资源相当丰富的话,这将极大地提高数据库的查询速度。
、非结构化数据的爆发增长,增加列在有些情况下可能锁定整个数据库,或者增加负载从而 导致性能下降,由于MongoDB的弱数据结构模式,添加1个新字段不会对旧表格有任何影响, 整个过程会非常快速。

4.缺点

.不支持复杂的连表操作和高事务度的系统(最新的4.0版本已经支持多文档事务)
.MongoDB占用空间过大 。
.MongoDB没有成熟的维护工具。

5.应用场景

.适用于实时的插入、更新与查询的需求,并具备应用程序实时数据存储所需的复制及高度伸缩性;(系统日志,访问日志等)
.非常适合文档化格式的存储及查询;
.高伸缩性的场景:MongoDB 非常适合由数十或者数百台服务器组成的数据库。
.量大,价值低的数据

基本就是上面这些了

参考

https://yq.aliyun.com/articles/650969?spm=a2c4e.11155472.0.0.787616ecYBEgDE

MongoDB 学习记录(一)的更多相关文章

  1. MongoDB学习记录

    一.操作符 "$lt" :"<""$lte" :"<=""$gt" :"> ...

  2. mongoDB学习记录---PHP扩展的find返回值

    最近的一个项目中用到了MongoDB,主要是使用MongoDB的PHP扩展.MongoDB的扩展中用于一个用于查询的方法是find().下面针对在理解MongoDB扩展的find()方法中做的实验做个 ...

  3. MongoDB 学习记录(二)yum安装

    前言:接着上篇继续学习MongoDB,这次学习的是在Linux下安装MongoDB 环境:centos7.3 安装版本:MongoDB4.0 官网安装教程地址 https://docs.mongodb ...

  4. MongoDB学习记录(四) - MongoDB的"增查改删"操作之"改"

    更新文档主要有以下几种方法: db.collection.updateOne(filter, update, options) db.collection.updateMany(filter, upd ...

  5. MongoDB学习记录(二) - MongoDB的"增查改删"操作之"增"

    如果做插入文档操作的集合不存在,那么集合将被创建 db.collection.insertOne() insertOne为collection插入一条文档,如果文档的_id字段未指定,MongoDB会 ...

  6. MongoDB学习记录(一) - 安装、启动与建立数据库

    简要说明一个基本概念:MongoDB中的三要素:数据库(database).集合(collection)和文档(document). 文档:类似于JSON对象,由字段(field)和值(value)组 ...

  7. MongoDB学习记录(三) - MongoDB的"增查改删"操作之"查"

    查找使用的方法: db.collection.find() 查找所有文档 db.collection.find({})或者db.collection.find({}) 指定键值对 db.collect ...

  8. MongoDB学习笔记—Linux下搭建MongoDB环境

    1.MongoDB简单说明 a MongoDB是由C++语言编写的一个基于分布式文件存储的开源数据库系统,它的目的在于为WEB应用提供可扩展的高性能数据存储解决方案. b MongoDB是一个介于关系 ...

  9. Mongodb学习笔记一(Mongodb环境配置)

    Mongodb学习 说明: MongoDB由databases组成,database由collections组成,collection由documents组成,document由fileds组成.Mo ...

随机推荐

  1. linux重装系统,如何保存硬盘中的内容

    以前没有太关注重装系统如何保留下硬盘中的内容.但是最近有一些文件在重装系统后确实需要继续保留下来,于是花了点时间了解下磁盘分区相关的东东. 参考 http://blog.csdn.net/openn/ ...

  2. <resultMap>中 <collection>的使用

    public class Question implements Serializable { private int id; //问题Id private int accountId; //用户id ...

  3. jqprint控件使用

    /*! jQuery v1.9.1 | (c) 2005, 2012 jQuery Foundation, Inc. | jquery.org/license //@ sourceMappingURL ...

  4. react用构造函数创建组件

    有两种方法,一种是通过构造函数创建,一种是通过class创建 1.构造函数创建组件 用function+组件名的方式创建,创建好了,在render里面以标签的形式一丢就可以啦!但是这种方式必须要ret ...

  5. Installing Office Online Server for SharePoint 2016

    Office Online Server is the next version of the Office Web Apps, which allows your users to view and ...

  6. Java 学习(1) ---JDK安装和配置环境变量

    一,Java 开发的第一步,就是安装JDK(Java Development ToolKit  Java开发工具包) JDK 是Java开发的核心,因为它包括Java 运行环境,工具包和命令.当我们安 ...

  7. Android与H5交互 原理与对比

    原文:  https://www.jianshu.com/p/345f4d8a5cfa 1.Android调用JS的方法有2种: (1)通过WebView的loadUrl() // 调用js中的函数: ...

  8. Typecho——数据库无法连接问题

    报错 对不起,无法连接数据库,请先检查数据库配置再继续进行安装 解决方案 创建数据库 reate database databaseName; 远程权限 开启远程权限 GRANT ALL PRIVIL ...

  9. 为何在新线程中使用注解获取不到Spring管理的Bean

    新建的线程类NewThread,在这个类中国使用Spring的注解获取Service,为null 网上已有这种问题的解决方案,但是为何在新线程中使用注解获取不到Spring管理的Bean? 问了老大, ...

  10. MT【301】值域宽度

    (2015浙江理科)已知函数$f(x)=x^2+ax+b,(a,b\in R)$.记$M(a,b)$是$|f(x)|$在区间$[-1,1]$上的最大值.(1)证明:当$|a|\ge2$时,$M(a,b ...