首页 > 数据库 >四.mongodb问答

四.mongodb问答

时间:2024-08-10 19:38:32浏览次数:6  
标签:副本 选举 mongodb 索引 MongoDB 问答 节点

目录

四.mongodb

4.1 mongodb的优势有哪些

  1. 高性能:MongoDB是一种面向文档的数据库,能够快速处理大量数据。

  2. 可扩展性:MongoDB支持水平扩展

  3. 强大的查询功能

  4. 高可用性和可靠性:MongoDB具有内置的复制和故障转移功能\

  5. 分布式计算

  6. 低成本

  7. 易于与前端应用集成:使用JSON作为其原生数据格式

缺点

  1. 不支持事务操作

  2. 占用空间较大:为了避免硬盘碎片和提高数据访问效率,会预分配较大的硬盘空间。JSON格式在存储数据时也会占用一定的额外空间。

4.2 什么是mongodb中的document

它是基本的数据单元,‌类似于关系型数据库中的行

4.3 什么场景下会使用mongodb

MongoDB 是一种面向文档(再次强调)的数据库,特别适用于以下场景:

1. 频繁的数据写入和更新

MongoDB 的文档模型和灵活的模式允许快速写入和更新数据,而不会产生性能问题。

2. 大量非结构化数据

MongoDB 可以存储和处理大量非结构化数据,例如 JSON 文档。

3. 水平扩展

MongoDB 可以通过分片在多个服务器上水平扩展,以处理海量数据。

4. 高并发性

MongoDB 针对高并发环境进行了优化,可以在具有大量同时连接和查询的应用程序中提供良好的性能。

5.实时数据分析

MongoDB 的聚合框架和索引允许进行快速的实时数据分析。

7. 移动和 Web 应用程序

MongoDB 轻量级、易于部署。

4.4 mongodb中的分片是什么意思

分片是将数据拆分,散到不同的机器上,不需要功能强大的大型计算机就可以储存更多的数据,处理更多的负载。有时也叫分区

4.5 什么时候需要分片:

a.机器的磁盘不够用了

b.单个mongod已经不能满足些数据的性能需要了

c.想将大量数据放在内存中提高性能

4.6 如何将数据分布在不同的chunk上

分片键的选择、chunks的自动创建与管理,以及MongoDB的均衡器(Balancer)对chunks的自动调整。

4.7 mongodb支持哪些类型的索引

  1. 单键索引(Single Field Index)
  2. 复合索引(Compound Index)
  3. 多键索引(Multikey Index)
  4. 地理空间索引(Geospatial Index)
  5. 文本索引(Text Index)
  6. 哈希索引(Hashed Index)
  7. TTL索引(Time-To-Live Index)
  8. 部分索引(Partial Index)
  9. 唯一索引(Unique Index)

4.8 副本集有哪些角色,是做什么的

主节点(Primary)

  • 功能:数据操作的主要连接点,负责处理所有的写操作(如插入、更新、删除等)和部分的读操作。它是副本集中唯一可以直接接收写操作的节点。

从节点(Secondary)

  • 功能:从节点主要负责复制主节点的数据,保持与主节点数据的一致性。处理读操作,以实现读写分离,从而减轻主节点的压力。

仲裁者(Arbiter)

  • 功能:仲裁者不存储任何数据副本,仅参与选举过程并提供投票。帮助确保副本集在发生节点故障时能够选举出新的主节点。

4.9 副本集的主节点选举原则

触发条件

  • 主节点故障
  • 网络不可达主节点在10秒内未响应其他节点的心跳信息,即认为网络不可达,从而选举启动。
  • 人工干预

选举规则

  • 票数决定:每个健康的副本集成员都会参与投票,票数最高的节点成为新的主节点。
  • 大多数原则:为了成为主节点,一个节点必须获得“大多数”成员的支持。这意味着如果有N个副本集成员(包括仲裁者,但仲裁者不存储数据且主要参与投票),则至少需要N/2+1个成员的投票支持。例如,在包含3个成员的副本集中(其中1个是主节点,1个是从节点,1个是仲裁者),至少需要2个成员的投票支持才能选举出新的主节点。
  • 优先级:在选举过程中,具有较高优先级的节点更有可能被选为主节点。优先级的值可以设置为0到1000之间的任何整数,默认值为1。通过设置节点的优先级,管理员可以根据节点的性能和重要性来调整选举的权重。
  • 数据一致性:如果两个候选节点的票数相同,则数据最新的节点将获胜。MongoDB使用操作日志(oplog)来记录操作的顺序和细节,并通过比较候选节点的oplog来确定哪个节点具有最新的数据。

防止脑裂

脑裂是指在网络分区的情况下,集群的不同部分各自选出不同的主节点,导致数据不一致和冲突。MongoDB的选举机制通过确保大多数节点的参与来防止脑裂现象的发生。只有当大多数节点达成一致时,才能选举出新的主节点,从而保证了集群的一致性和稳定性。

选举过程

选举过程大致如下:

  • 一旦触发选举条件(如主节点故障),副本集成员之间会相互发送选举请求和响应。
  • 每个成员根据自己的配置(如优先级)和状态(如健康状态、数据一致性等)来决定投票给哪个候选节点。
  • 一旦某个节点获得了大多数选票,它将被确认为新的主节点,并开始处理客户端请求。

标签:副本,选举,mongodb,索引,MongoDB,问答,节点
From: https://www.cnblogs.com/guixiangyyds/p/18352706

相关文章

  • C语言问答进阶--2、C语言简介及基本的输入输出函数
    C语言简介Q:您好,能大体介绍下C语言吗?A:当然可以。C语言是一种计算机语言,它主要被用在系统编程里,可以说,C语言的产生就和操作系统的编写密不可分。【C语言简要历史】1978年由美国电话电报公司(AT&T)的贝尔实验室正式发表了C语言。同时由B.W.Kernighan和D.M.Ritchie合著了著......
  • Docker 部署之 docker-compose 部署 MongoDB 三副本集群(三节点)
    docker-compose部署MongoDB1.生成`keyFile`2.详细的`docker-compose.yml`文件信息3.启动三个容器4.配置集群5.使用配置文件初始化集群本文是通过三台机器部署的三个mongo副本组成的集群,每个节点部署一个mongo服务,数据存储采用绑定nfs进行存储前提......
  • 本地化部署GraphRAG+Ollama,实现基于知识图谱的智能问答
    citingfromhttps://medium.com/@vamshirvk/unlocking-cost-effective-local-model-inference-with-graphrag-and-ollama-d9812cc60466之前写过一篇使用deepseek和智谱AI实现《红楼梦》中人物关系智能问答的随笔但deepseek提供的免费tokens只有500万个,GraphRAG构建图谱的索引和......
  • mongodb使用
    一.简介1.1MongoDB是一个基于分布式文件存储的数据库,官方地址https://www.mongodb.com1.2mongodb中有三个重要概念需要掌握数据库(database)数据库是一个数据仓库,数据库服务下可以创建很多数据库,数据库中可以存放很多集合集合(collection)集合类似于JS中的数组,在集合中......
  • NoSQL 数据库之MongoDB
    MongoDB是一个开源的NoSQL数据库,由MongoDBInc.研发和维护。它采用文档存储模型,使用JSON类似的BSON(二进制JSON)格式来存储数据。MongoDB具有高性能、易扩展和高可用性等特点,广泛应用于现代web应用程序中。以下是对MongoDB的详细介绍:核心特性1.文档存储MongoD......
  • 使用ansible安装mongodb分片集群
    【说明】使用ansible安装一个分片集群,三台服务器,三个mongos,三个config,三个分片节点,每三个分片有三个副本(每个节点运行三个端口的mongod)  [mongo_servers]10.x.x.21ansible_user=rootansible_ssh_pass=xxxxxxxxcluster_role=mongo1......
  • JSP高血压的医疗在线问答诊断系统ft78d
    本系统(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面。系统程序文件列表系统功能介绍:患者,医生,医生咨询,在线问诊,医疗诊断技术要求:    开发语言:JSP前端使用:HTML5,CSS,JSP动态网页技术后端使用SpringBoot,Spring技术主数据库......
  • zabbix“专家坐诊”第250期问答
    问题一Q:乐维监控社区版监控交换机,能统计出端口的IP流量排名吗?A:社区版没有这个功能,正式版,流量报表可以实现端口IP流量排行。 问题二Q:我看了一下乐维有事件平台汇总的功能,可以接第三方的告警吗?A:可以的。Q:有没有操作手册我看看,或者你们是基于什么做的?A:通过,对外开放API接口......
  • 五、.Net Core Web Api连接MongoDB自动创建表格并实现CRUD功能
    五、.NetCoreWebApi连接MongoDB自动创建表格并实现CRUD功能1.注册MongoDB账号,并获取ConnectionString;MongoDB官网:MongoDB:TheDeveloperDataPlatform|MongoDB获取ConnectionString教程:ConnectionString获取在VSCodeforMac按下shift+command+p搜索Nuget......
  • mongoDB_04
    MongoDB_04Attribution:MongoDB:TheDefinitiveGuide,ThirdEditionbyShannonBradshaw,EoinBrazil,andKristinaChodorow(O’Reilly).Copyright2020ShannonBradshawandEoinBrazil,978-1-491-95446-1.UsingtheMongoDBShellThissectioncoversho......