NoSQL——期末复习(3)第三章MongoDB重点思考题

描述MongoDB数据库的主要特点。

(1)高可伸缩性:MongoDB 采用了分片技术,可以将数据分散在多台服务器上,从而实现水平扩展。

(2)高性能:查询速度快,部分原因是它将数据存储在内存中,还因为采用了多线程和异步 IO 技术,对大量并发请求也能有出色的响应能力。

(3)灵活的数据类型:采用文档型数据模型,通过嵌套文档和数组,可以灵活的表示数据。

(4)JSON 编码:使用 BSON 格式类存储数据,BSON 上文已经提到,是 JSON 的二进制编码,具有更高的查询速度以及更少的存储空间。MongoDB 支持直接读写 JSON 格式的数据,提供了 JSON 风格的查询语言。

(5)可扩展性:存储引擎是可插拔式的,可以根据存储需求选择合适的存储引擎。

(6)自动分片:大型应用所需数据量庞大,MongoDB 可以自动分片,自动分配数据至不同服务器。

(7)数据备份与恢复:快照和复制技术实现数据备份和恢复。

1.MongoDB集群的数据多副本策略?

MongoDB支持分片的多副本,多副本采用主从备份形式。MongoDB称这种机制为复制集机制。

主节点(Primary节点)负责数据的写入和更新。主节点在更新数据的同时,会将操作信息写入日志,称为oplog。

从节点(Secondary节点)监听主节点oplog的变化,并根据其内容维护自身的数据更新,使之和主节点保持一致(最终一致性)。

主节点失联后,从节点会进行选举,将一个从节点提升为主节点。

2.描述MongoDB的分片机制,它支持哪几种分片策略?

MongoDB将数据水平切分机制称为分片(Sharding)。MongoDB支持对文档的自动分片,分片的依据是片键(Shard Keys),分片键可以由文档的一个或多个字段构成,分片使得集群中的数据可以在分布式环境下均衡存储和使用。

MongoDB支持基本的分片策略,即范围分片(MongoDB的默认分片策略。它根据分片键的值范围将数据分布到不同的分片上)和哈希分片(通过对分片键进行哈希运算,将数据均匀分布到各个分片上)。

3.描述MongoDB的集群架构(包含的角色和每个角色的作用)。

当数据分片后,集群中会包含mongod(或称为Shard)、mongos和config三种类型的节点。

mongod负责存储数据,支持为每个shard构建副本集。

Config节点,负责持久化存储分片集群的元数据和配置信息。 支持为Config节点构建副本集。

Mongos节点,一方面作为用户访问集群的入口,负责与客户端的交互;另一方面也承担分片的管理功能。 Mongos支持部署多个进行负载均衡。

相关推荐
雨墨✘18 小时前
golang如何实现设备指纹识别_golang设备指纹识别实现详解
jvm·数据库·python
程序员大辉18 小时前
没想到!一直要开会员的Navicat 终于有免费版了
数据库
数厘18 小时前
2.15 sql基础查询(SELECT、FROM、字段别名、常量与表达式)
数据库·sql·oracle
可观测性用观测云18 小时前
观测云数据转发和存档最佳实践
数据库
披着羊皮不是狼19 小时前
(7)为 RAG 系统接入 Redis Stack 实现向量持久化
数据库·redis·缓存
SelectDB19 小时前
基于 SelectDB 实现 Hive 数据湖统一分析:洋钱罐全球一体化探索分析平台升级实践
大数据·数据库·数据分析
飞yu流星19 小时前
mysql 基础
数据库·mysql·oracle
零陵上将军_xdr19 小时前
MySQL 事务写入流程详解
android·数据库·mysql
若阳安好19 小时前
【提效小工具】IN SQL、UPDATE SQL、INSERT SQL
java·数据库·sql
二月十六19 小时前
SQL Server 2022 新函数:DATETRUNC 日期截断详解
数据库·sqlserver·datetrunc