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