MongoDB 合作考试报销活动 贴附属,MongoDB基础知识速通

文摘   2024-11-26 06:00   天津  

开头还是介绍一下群,如果感兴趣PolarDB ,MongoDB ,MySQL ,PostgreSQL ,Redis, OceanBase, Sql Server等有问题,有需求都可以加群群内有各大数据库行业大咖,可以解决你的问题。加群请联系 liuaustin3 ,(共2590人左右 1 + 2 + 3 + 4 +5 + 6 + 7)(1 2 3 4 5 6群均已爆满,新人进7群,8群,准备9群)

   

  大家好,想必大家已经发现不少老师已经开始对MongoDB在2024年,年底对MongoDB的考试免费的活动了进行宣传了,这里为了协助MongoDB和各位老师以及对此次考试感兴趣的同学,我将在本帖对一些MongoDB的知识和一些颠覆了RDBMS的NOSQL知识进行一个普及。

MongoDB 年底活动,免费考试名额 7个公众号获得


另外说明一下活动在周一基本结束了,本来每个老师只有2个推荐名额的情况下,最后每个老师都扩编,且和MongoDB协商增加名额的事情,将近不到30人结果,令我惊讶的,还有Oracle 原厂的老师也非常热心的参与此项活动,感谢各位老师热心参与活动,活动圆满结束,后续MongoDB公司的老师们将接力帮助大家。

MongoDB 大学网址
https://learn.mongodb.com/pages/certification-program

这里简单介绍一下MongoDB的考试

MongoDB 的考试分为4种

分别面对了,DBA、云上的DBA、开发者、和数据建模,这四个门类,目前DBA建议考取 Associate Database Administrator Exam 这个门类的考试。

这是一个世界性的考试,通过的证书在全球是有效,主要面对一些外企,以及互联网企业的应用场景。

另外我个人在8年的MongoDB 的使用中,我对MongoDB 最大的感谢是将我对数据处理的二维思维,升维度了。

具体为什么,可以从MongoDB 数据建模和模式设计中找到答案,如果用一句话表达,让我的数据处理方案更灵活且多了一些奇思妙想。这本书翻译者,萧少聪,萧老师实际上曾经是PostgreSQL中文社区的主席,在和他的线下沟通中,我也获得了一些,他对MongoDB以及设计理论上的一些突破的想法,感谢他,能人都是多才多艺的。



下面我们进入主题,将以MongoDB Basic 这本书作为一个基础,会冲击到没有接触到NOSQL数据库的同学的脑细胞。


1 文档,集合,数据库 

MongoDB中的行,不叫行,叫文档,表不叫表,叫集合。数据库还是和传统数据一个概念。 且文档一行最大可以存储16MB的数据,这远远超出任何传统数据库的单行的数据存储量。

2 Bson and  Json

JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式,以易于阅读和理解的文本格式表示复杂的数据结构

BSON (Binary JSON) 是 MongoDB 团队开发的一种开放数据格式,是 JSON 的二进制形式。 BSON 使 MongoDB 的处理和搜索文档更加高效。 它还添加了一些标准 JSON 中不具备的功能,例如添加类型以处理二进制数据 BSON 的优点:

速度:BSON 使 MongoDB 更快,因为它使计算机更容易处理和搜索文档。

效率:BSON 易于快速地转换为编程语言的原生数据格式,简化代码并提高速度。

扩展性:BSON 提供了对 JSON 的一些扩展,例如能够存储二进制数据和合并特定数据类型。

3 在一个MongoDB 数据库中

1  不需要创建表,也没有创建表的语句 

2  在没有创建表的情况下,可以创建索引,可以创建约束 

3  MongoDB 可以进行传统数据库的聚合操作 

4  MongoDB 有事务,且可以进行集合的Join运算 (但我们不建议)

4  MongoDB 的生产支持的安装方式

1 复制集合 replica 

2 分片    sharding

5 MongoDB 有用户的概念吗? 且有传统数据库角色得概念

有的,甚至比传统数据库在角色上的状态,更丰富。

6 MongoDB 有表空间的概念吗? 一个集合是一个数据文件吗?

数据文件: MongoDB 将数据存储在数据文件中,这些文件以 BSON 格式存储文档。数据文件根据命名空间进行组织,例如 collection-.wt,其中 collection 是集合名称, 是一个数字后缀。

命名空间文件 (.ns File): 命名空间文件包含数据库和集合的元数据信息,例如集合名称、索引信息等。

预分配: MongoDB 会预先分配数据文件空间,以提高写入性能。 默认情况下,MongoDB 会为每个数据库和集合分配一定大小的空间。 当数据文件空间不足时,MongoDB 会自动扩展文件大小。

7 MongoDB 有日志吗?

有,且有丰富的日志,本地日志,和Oplog日志,以及系统的运行日志

8 MongoDB 的复制集合几个节点,如果坏掉了是否可以工作

最少3个节点,坏掉一个可以继续工作,节点可以进行分布式的选举,主从自动切换,且不需要传统数据库的代理,路由等指向,让应用程序来在节点切换后,进行寻址,MongoDB将和应用程序协商,且告知新的主和从节点,全自动进行failover,且基本上无感知切换。

9 在Mongodb 中一般多慢就算慢查询了

一般我们可以认为,500毫秒的查询就属于慢查询,基本MongoDB的查询速度

REDIS > MongoDB > ORACLE ,SQL SERVER ,POSTGRESQL ,MYSQL

10 MongoDB 有不适合进行操作的项目吗?

有,聚合操作,且全表的聚合操作,MONGODB 不值OLAP的项目数据库选型对象。

11 MongoDB 添加字段会锁表吗,添加索引会锁表吗

不会,添加索引有background模式,在线添加索引,不会阻塞DML操作

12 MongoDB 有类似传统数据库的 explain 吗?

有且更详细,更容易分析,计划以JSON方式进行输出

13 MongoDB 会丢数据吗?读写分离可以做吗,读写会数据不一致吗?

不会,按照正常的模式,不会丢数据,且有多副本保证。且开发人员可以加速数据的插入,更新,删除,或提高数据安全等级模式选择,相关的部分掌握在开发者手中,且可以自动进行数据一致性读取的要求,如报数据写入和读取不一致,则为不会使用导致,与MONGODB 无关。

14  如何保证数据不丢失

通过三个方面来保证

写入确认: 可以使用 writeConcern 选项指定写入确认级别。 例如, w: 1 表示写入操作必须成功写入主节点才能返回成功。 w: "majority" 表示写入操作必须成功写入大多数节点才能返回成功。

日志文件: 如上所述,日志文件可以确保在发生故障时恢复数据。

副本集: 副本集可以提供数据冗余和故障转移功能,进一步提高数据安全性。 读取操作内部机制

15 GRID FS 是什么功能?

GridFS 的主要功能包括:

存储大文件: GridFS 将大文件分割成多个较小的数据块(chunk),每个数据块作为单独的文档存储在 MongoDB 中。 这使得 MongoDB 可以存储任意大小的文件,而不会受到 BSON 文档大小限制的约束。

提高效率和可扩展性: GridFS 的这种分块存储方式,使得文件的存储和检索更加高效和可扩展。 由于文件被分割成多个小块, MongoDB 可以并行地读取和写入这些数据块,从而提高性能。

简化文件操作: 各语言驱动程序会隐藏 GridFS 的内部实现细节,为开发者提供简单易用的 API,方便开发者存储、检索和管理文件。 开发者无需关心文件的分块和合并操作,可以像操作普通文件一样操作 GridFS 中的文件。

支持范围查询: GridFS 支持对文件进行范围查询,这意味着您可以只检索文件的一部分,而无需下载整个文件。 例如,如果您只需要视频文件的一部分,则可以使用范围查询仅下载该部分,从而节省带宽和时间。

元数据管理: GridFS 允许您为每个文件存储元数据,例如文件名、文件类型、上传日期等。 这些元数据可以帮助您更好地管理和组织文件。 GridFS 的工作原理:

两个集合: GridFS 使用两个集合来存储文件: fs.files 和 fs.chunks。

fs.files 集合存储文件的元数据,例如文件名、文件大小、块大小、上传日期和 MD5 校验和。

fs.chunks 集合存储文件的数据块,每个数据块默认大小为 255KB。

文件分割: 当您使用 GridFS 存储文件时,驱动程序会将文件分割成多个数据块,并将每个数据块存储为 fs.chunks 集合中的一个文档。

文件合并: 当您检索文件时,驱动程序会从 fs.chunks 集合中检索所有数据块,并将它们合并成完整的原始文件。 GridFS 的使用场景:

存储大型媒体文件,例如视频、音频和图像。

存储需要进行范围查询的文件,例如日志文件和科学数据集。

存储需要存储元数据的任何类型的文件。

16 MongoDB 可以进行数据一致点的备份,类似传统数据库吗?

类似,既有类似MySQL PG的 dump系列的 mongodump, 也有MySQL ,PG类似的物理备份方式(文件系统快照,备份的速度与你的磁盘性能有关),可以理解为,逻辑备份+物理备份

17 MongoDB 的表需要设计吗,怎么设计

最近新出了一本新书,关于MongoDB 数据建模和模式设计,由行业专家 萧少聪老师翻译。(参见文章上方)


这里我举一个简单的例子,如果让你在传统数据库中,更新1亿行,我们能使用的命令只能是UPDATE,哪怕你分开执行。

但在MongoDB 我们可以玩的就挺多了,比如 schema versioning , 或者我先插入在删除的方式也可以,方案很多,所以业界也有一句话,传统数据库的问题可能真的是传统数据的问题,但MongoDB的大部分问题,是你不会的问题。

截止今天共发布1257篇文字


MongoDB 相关文章
MongoDB 年底活动,免费考试名额 7个公众号获得
MongoDB 使用网上妙招,直接DOWN机---清理表碎片导致的灾祸 (送书活动结束)

数据库 《三体》“二向箔”  思维限制 !8个公众号联合抽奖送书 建立数据库设计新思维

MongoDB  是外星人,水瓶座,怎么和不按套路出牌的他沟通?

17000多张MongoDB表的锅 自动分析删除表数据难题--从头到尾的处理过程(文尾有MongoDB开发规范)
MongoDB 插入更新数据慢,开发问哪的问题?附带解决方案和脚本
MongoDB 不是软柿子,想替换就替换
MongoDB  挑战传统数据库聚合查询,干不死他们的MongoDB 2023纽约 MongoDB 大会 -- 我们怎么做的新一代引擎 SBE Mongodb 7.0双擎力量(译)
MongoDB 2023年度纽约 MongoDB 年度大会话题 -- MongoDB 数据模式与建模
MongoDB  双机热备那篇文章是  “毒”
MongoDB   会丢数据吗?在次补刀MongoDB  双机热备
MONGODB  ---- Austindatabases  历年文章合集

PostgreSQL 相关文章


PostgreSQL “我怎么就连个数据库都不会建?” --- 你还真不会!

PostgreSQL 事务读取行 不使用行锁 真的? 利弊双刃剑

病毒攻击PostgreSQL暴力破解系统,防范加固系统方案(内附分析日志脚本)
PostgreSQL 远程管理越来越简单,6个自动化脚本开胃菜

PostgreSQL 稳定性平台 PG中文社区大会--杭州来去匆匆

PostgreSQL 如何通过工具来分析PG 内存泄露

PostgreSQL  分组查询可以不进行全表扫描吗?速度提高上千倍?

POSTGRESQL --Austindatabaes 历年文章整理

PostgreSQL  查询语句开发写不好是必然,不是PG的锅

PostgreSQL  字符集乌龙导致数据查询排序的问题,与 MySQL 稳定 "PG不稳定"
PostgreSQL  Patroni 3.0 新功能规划 2023年 纽约PG 大会 (音译)
PostgreSQL   玩PG我们是认真的,vacuum 稳定性平台我们有了
PostgreSQL DBA硬扛 垃圾 “开发”,“架构师”,滥用PG 你们滚出 !(附送定期清理连接脚本)

DBA 失职导致 PostgreSQL 日志疯涨


OceanBase 相关文章


跟我学OceanBase4.0 --阅读白皮书 (0.5-4.0的架构与之前架构特点)
跟我学OceanBase4.0 --阅读白皮书 (旧的概念害死人呀,更新知识和理念)

聚焦SaaS类企业数据库选型(技术、成本、合规、地缘政治)

OceanBase 学习记录-- 建立MySQL租户,像用MySQL一样使用OB
OceanBase  学习记录 -- 安装简易环境
OceanBase  学习记录 --  开始入门
数据库最近第一比较多,OceanBase 定语加多了?
临时工访谈:OceanBase上海开大会,我们四个开小会 OB 国产数据库破局者
临时工说:OceanBase 到访,果然数据库的世界很卷,没边
数据库信息速递  阿里巴巴的分布式数据库OceanBase旨在进军中国以外的市场 (翻译)



PolarDB 相关文章


PolarDB-MySQL 并行技巧与内幕--(怎么薅羊毛)

PolarDB 并行黑科技--从百套MySQL撤下说起 (感谢8018个粉丝的支持)

PolarDB 杀疯了,Everywhere Everytime Everydatabase on Serverless

POLARDB  从一个使用者的角度来说说,POALRDB 怎么打败 MYSQL RDS

PolarDB 最近遇到加字段加不上的问题 与 使用PolarDB 三年感受与恳谈

PolarDB 从节点Down机后,引起的主从节点强一致的争论

PolarDB serverless 真敢搞,你出圈了你知道吗!!!!

PolarDB VS PostgreSQL  "云上"性能与成本评测 -- PolarDB 比PostgreSQL 好?

临时工访谈:PolarDB  Serverless  发现“大”问题了  之 灭妖记 续集

临时工访谈:庙小妖风大-PolarDB 组团镇妖 之 他们是第一

PolarDB for PostgreSQL  有意思吗?有意思呀
PolarDB  Serverless POC测试中有没有坑与发现的疑问
临时工说:从人性的角度来分析为什么公司内MySQL 成为少数派,PolarDB 占领高处
POLARDB  到底打倒了谁  PPT 分享 (文字版)

POLARDB  -- Ausitndatabases 历年的文章集合

PolarDB for PostgreSQL  有意思吗?有意思呀

PolarDB  搞那么多复杂磁盘计费的东西,抽筋了吗?




MySQL相关文章


MySQL timeout 参数可以让事务不完全回滚
"DBA 是个der" 吵出MySQL主键问题多种解决方案

MySQL 让你还用5.7 出事了吧,用着用着5.7崩了

MySQL 的SQL引擎很差吗?由一个同学提出问题引出的实验
用MySql不是MySQL, 不用MySQL都是MySQL 横批 哼哼哈哈啊啊
MYSQL  --Austindatabases 历年文章合集

阿里云系列

阿里云数据库产品权限设计缺陷 ,六个场景诠释问题,你可以做的更好?

阿里云数据库--市场营销聊胜于无--3年的使用感受与反馈系列

阿里云数据库产品 对内对外一样的卷 --3年阿里云数据库的使用感受与反馈系列

阿里云数据库使用感受--客户服务问题深入剖析与什么是廉价客户 --3年的使用感受与反馈系列

阿里云数据库使用感受--操作界面有点眼花缭乱 --3年的使用感受与反馈系列



SQL SERVER 系列

SQL SERVER 如何实现UNDO REDO  和PostgreSQL 有近亲关系吗
SQL SERVER 2022 针对缓存扫描和Query Store 的进步,可以考虑进行版本升级

临时工访谈系列

本地存储还有活路吗? 从上周一个供应商问我的问题开始
一年又一年,成了老梆子,别回头,往前看!
Oracle 离婚后,过的挺好,你别惦记了
临时工说: 实际实例揭穿AI, 上云就不用DBA的谎言
临时工说:DBA 7*24H 给2万的工作,到底去不去?
国内最大IT服务公司-招聘DBA “招聘广告”的变化--分析与探讨
临时工说:  网友问35岁就淘汰,我刚入行DBA 怎么办?


AustinDatabases
PostgreSQL ACE ,PolarDB 3年, OceanBase 极速学习ING, MongoDB 8年经验, MySQL OCP, SQL SERVER, MCITP,REDIS ,做一个合格的数据库架构师
 最新文章