MongoDB 学习记录(一)

前言:之前一直只是简单了解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。优点

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

4.缺点

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

5.应用场景

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

 

基本就是上面这些了

参考

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

 

posted @ 2018-10-15 16:28  陈浩宇人呢  阅读(189)  评论(0编辑  收藏  举报