MongoDB入坑
一、体系架构
MongoDB是NoSQL数据库中的佼佼者,目前是排名第一的文档型数据库。该数据库基于灵活的JSON文档模型,非常适合敏捷式的快速开发。与此同时,其与生俱来的高可用、高水平扩展能力使得它在处理海量、高并发的数据应用时颇具优势。
1、简介
DBMS No.5;NoSQL Document No.1
1)BSON
BSON(Binary JSON)是二进制版本的JSON,其在性能方面有更优的表现。BSON在许多方面和JSON保持一致,其同样也支持内嵌的文档对象和数组结构。二者最大的区别在于JSON是基于文本的,而BSON则是二进制(字节流)编/解码的形式。除此之外,BSON还提供了一些扩展的数据类型,比如日期、二进制数据等。
数据模型
2)原生高可用 & 横向扩展能力
3)了解一点JavaScript的语法就可以基本掌握一种数据库的使用
2、MongoDB VS RDBMS
● 数据库(database):最外层的概念,可以理解为逻辑上的名称空间,一个数据库包含多个不同名称的集合。
● 集合(collection):相当于SQL中的表,一个集合可以存放多个不同的文档。
● 文档(document):一个文档相当于数据表中的一行,由多个不同的字段组成。
● 字段(field):文档中的一个属性,等同于列(column)。
● 索引(index):独立的检索式数据结构,与SQL概念一致。
● _id:每个文档中都拥有一个唯一的_id字段,相当于SQL中的主键(primary key)。
● 视图(view):可以看作一种虚拟的(非真实存在的)集合,与SQL中的视图类似。从MongoDB 3.4版本开始提供了视图功能,其通过聚合管道技术实现。
● 聚合操作($lookup):MongoDB用于实现“类似”表连接(table join)的聚合操作符。
3、文件
参数、日志、数据、运行
● conf作为配置文件目录。
● data作为数据文件目录。
● log作为日志文件目录。
4、体系结构
Client -> Native Drivers -> Server (Query Engine、Storage Engine)
二、权限管理
1、开启
grep authorization /etc/mongod.conf
authorization: enabled
2、角色
超级用户、备份恢复、全局管理、集群管理、数据库管理、应用程序用户
三、存储引擎
MMAPv1 已经被淘汰,In-Memory案例较少!
wiredTiger 的天下
db.serverStatus().storageEngine;
{
"name" : "wiredTiger",
"supportsCommittedReads" : false,
"supportsSnapshotReadConcern" : true,
"readOnly" : false,
"persistent" : true
}
四、备份 & 恢复
可执行文件
https://blog.csdn.net/qq_16583855/article/details/125418575
ll /usr/bin/mongo*
/usr/bin/mongo*
/usr/bin/mongod*
/usr/bin/mongodump*
/usr/bin/mongoexport*
/usr/bin/mongofiles*
/usr/bin/mongoimport*
/usr/bin/mongorestore*
/usr/bin/mongos*
/usr/bin/mongostat*
/usr/bin/mongotop*
五、高可用
0、主从复制
1、副本集
2、分片
六、安装
https://blog.csdn.net/he_xin2009/article/details/128469205
七、学习文档
https://zhuanlan.zhihu.com/p/494298431?utm_id=0