开头还是介绍一下群,如果感兴趣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 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 数据建模和模式设计,由行业专家 萧少聪老师翻译。(参见文章上方)
数据库 《三体》“二向箔” 思维限制 !8个公众号联合抽奖送书 建立数据库设计新思维
MongoDB 是外星人,水瓶座,怎么和不按套路出牌的他沟通?
PostgreSQL 相关文章
PostgreSQL 事务读取行 不使用行锁 真的? 利弊双刃剑
PostgreSQL 稳定性平台 PG中文社区大会--杭州来去匆匆
PostgreSQL 分组查询可以不进行全表扫描吗?速度提高上千倍?
POSTGRESQL --Austindatabaes 历年文章整理
PostgreSQL 查询语句开发写不好是必然,不是PG的锅
OceanBase 相关文章
PolarDB 相关文章
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 -- Ausitndatabases 历年的文章集合
PolarDB for PostgreSQL 有意思吗?有意思呀
MySQL相关文章
阿里云系列
阿里云数据库产品权限设计缺陷 ,六个场景诠释问题,你可以做的更好?
阿里云数据库--市场营销聊胜于无--3年的使用感受与反馈系列
阿里云数据库产品 对内对外一样的卷 --3年阿里云数据库的使用感受与反馈系列
阿里云数据库使用感受--客户服务问题深入剖析与什么是廉价客户 --3年的使用感受与反馈系列
阿里云数据库使用感受--操作界面有点眼花缭乱 --3年的使用感受与反馈系列