mongodb小结

MongoDB升级小结 背景最近业务mongo升级,因为需要调整业务代码和线下测试,工作持续了一个月才有了阶段性的成果。 业务代码主要是Python,在升级之前,我们已更新到了合适版本的pymongo,并在线下做了测试。 为了从2.4升级到3.0,需要先从2.4升级到2.6,然后再从2.6升级到3.0。 mongo没有用yum安装,直接拷贝的mongo的bin文件,在机器上运行mongd启动。 阅读详情

mongodb是nosql数据库      Not only sql 

个人使用而言 游戏旧的数据结构不用做版本转换了  

MongoDB中的数据是以BSON(Binary JSON)文档的形式组织的,每个文档都是一个键值对的集合,可以包含任何类型的数据

MongoDB中的数据以文件的形式存储在磁盘上,每个数据库对应一个或多个物理文件

在MongoDB中,数据的读写操作都是基于内存的,MongoDB会将频繁访问的数据缓存在内存中,以提高查询和更新的速度

集合相当于表 文档相当于行数据    不过文档与文档之间没有联系 不像关系型数据库一样  每一行的数据的格式要一样

在MongoDB中,数据的读写操作都是基于内存的

支持副本集和分片机制,可以轻松地实现数据的水平扩展和负载均衡

面向文档的,非常适合存储非结构化数据

objectid的组成

时间戳、客户端ID、客户进程ID、三个字节的增量计数器

  • 前4个字节表示时间戳;
  • 接下来的3个字节是机器标识码;
  • 紧接的两个字节由进程id组成(PID);
  • 最后三个字节是自增计数器生成的随机数;

集群模式有三种   主从  副本集 分片 

主从

主从复制是 MongoDB 中最简单的数据库同步备份的集群技术,其基本的设置方式是建立一个主节点(Primary)和一个或多个从节点(Secondary)

主从复制模式的集群中只能有一个主节点,主节点提供所有的增、删、查、改服务,从节点不提供任何服务,但是可以通过设置使从节点提供查询服务,这样可以减少主节点的压力。

另外,每个从节点要知道主节点的地址,主节点记录在其上的所有操作,从节点定期轮询主节点获取这些操作,然后对自己的数据副本执行这些操作,从而保证从节点的数据与主节点一致。
 

在这里插入图片描述

 副本集

此集群拥有一个主节点和多个从节点,这一点与主从复制模式类似,且主从节点所负责的工作也类似,但是副本集与主从复制的区别在于:当集群中主节点发生故障时,副本集可以自动投票,选举出新的主节点,并引导其余的从节点连接新的主节点,而且这个过程对应用是透明的。

可以说,MongoDB 的副本集是自带故障转移功能的主从复制。

MongoDB 副本集使用的是 N 个 mongod 节点构建的具备自动容错功能、自动恢复功能的高可用方案。在副本集中,任何节点都可作为主节点,但为了维持数据一致性,只能有一个主节点。

主节点负责数据的写入和更新,并在更新数据的同时,将操作信息写入名为 oplog 的日志文件当中。主节点还负责指定其他节点为从节点,并设置从节点数据的可读性,从而让从节点来分担集群读取数据的压力。

另外,从节点会定时轮询读取 oplog 日志,根据日志内容同步更新自身的数据,保持与主节点一致。
 

分片

分片是指将数据拆分并分散存放在不同机器上的过程。有时也用分区来表示这个概念。将数据分散到不同的机器上,不需要功能强大的大型计算机就可以存储更多的数据,处理更大的负载。

MongoDB 支持自动分片,可以使数据库架构对应用程序不可见,简化系统管理。对应用程序而言,就如同始终在使用一个单机的 MongoDB 服务器一样。

MongoDB 的分片机制允许创建一个包含许多台机器的集群,将数据子集分散在集群中,每个分片维护着一个数据集合的子集。与副本集相比,使用集群架构可以使应用程序具有更强大的数据处理能力
在这里插入图片描述

 

构建一个 MongoDB 的分片集群,需要三个重要的组件,分别是分片服务器(Shard Server)、配置服务器(Config Server)和路由服务器(Route Server)

索引使用B树

b树和b+树的区别

在这里插入图片描述

 在这里插入图片描述

 

在这里插入图片描述

 

mysql和mongodb的区别

数据存储方式

MySQL采用的是传统的关系型数据库,数据以表格的形式存储,每个表都有固定的列和行。这种结构使得MySQL在处理结构化数据时表现出色,但是在处理非结构化数据时表现不佳。

MongoDB则是面向文档的数据库,它使用文档的方式存储数据,文档中可以包含任何类型的数据,而且不需要事先定义其结构。这种方式使得MongoDB在存储和查询非结构化数据时更加高效。

索引机制

索引是提高数据库查询效率的重要手段,MySQL和MongoDB的索引机制也不同。MySQL采用B+树索引,这种索引适用于结构化数据,但对非结构化数据的查询效率较低。

MongoDB采用的是BSON索引,BSON是一种类JSON的二进制编码格式,它支持对文档中的任何字段进行索引,查询速度非常快。此外,MongoDB还支持地理空间索引和全文索引等高级索引方式,使得非结构化数据的查询更加高效。

分布式架构

MySQL在分布式环境下需要进行数据分片,这会带来许多管理和维护的问题。

MongoDB天生就是分布式的,它采用的是副本集和分片机制,可以轻松地实现数据的水平扩展和负载均衡。MongoDB还具有自动故障转移和自动恢复等功能,当节点发生故障时会自动将其替换为备用节点,保证系统的高可用性和数据的安全性。
 

mongodb的优缺点及应用场景 | Spring Boot 32 一、MongoDB是什么 1、维基百科 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索 阅读详情

相关推荐

小鹏P7车载以太网诊断实战:从OBD口定义到DoIP协议验证

本文详细解析了小鹏P7车载以太网诊断的实战过程。从OBD接口的针脚定义入手,依据ISO13400标准,确认了以太网线对位置,并指导制作专用的RJ45转OBD线束。通过搭建测试环境,使用Ping、端口扫描及Wireshark抓包,最终成功验证了车辆对DoIP协议的支持,为基于以太网的高速诊断与刷写提供了完整的技术路径。

CAT789的专栏 520

MongoDB 使用教程--基本增删改查语法

MongoDB文档的数据结构和JSON基本一样。 切换数据库,此处使用NoSQL Manager for MongoDB工具作为客户端,  命令 user test 查看所有数据库   show dbs 切换到数据库 runoob: use runoob 执行删除命令: db.dropDatabase() 删除集合 db.colle

IT少年 4万+

基于集成运放心电放大器设计(原创)

原创作者:einyboy or alert 最近在看美剧《危机边缘》关于边缘科学的案件,科技控可以看一下,但建议不在吃东西的时候看。想像力是创造的思想源头,动手能力则是创造的车床。 自认为是没有想像力的那类,只能发挥动手能力了。 心电测量简介 图1 心电极接线图 如图1心电测试一般使用3个心电极进行测量,各个电极的说明如下: RA: Right Arm缩写,右手电极 LA: L...

huandaohack的专栏 6923

MongoDB详解,用心看这篇就够了【重点】

1.1 MongoDB概述 MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。 MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。 它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。Mongo最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,几乎可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。 Mo

ᶻᶻᶻ 枕星河的博客 9万+

《网络安全自学教程》- MySQL脱库原理和步骤

MySQL脱库,脱库的原理,怎么脱库,脱库的步骤,一库三表六字段

wangyuxiang946的博客 1万+

华为OD新系统机试真题-文章特征提取

华为OD机试新系统真题 【文章特征提取】,提供C语言、Java、C++、Python、Go、JavaScript源码实现,并提供完整思路讲解,以及在线OJ模拟做题。华为OD新系统机试真题【文章特征提取】

qq_45776114的博客 729

mongoDB详解

mongodb的详细介绍,包含mongo的相关语句,复制集群,分片集群等

weixin_38612401的博客 3万+

高通平台 Android T 蓝牙技术全解析:A2DP 与 AVRCP 核心代码路径与交互流程

A2DP 接收端 - 连接流程(AVDTP 打开)

专业开发者的博客,一个从事Android WiFi和蓝牙的工程师 288

MongoDB从零开始详细教程(超详细讲解)

目录一、简介1. 简单介绍2. 业务应用场景3. 什么时候选择MongoDB4. 体系机构5. 数据类型6. 特点二、Windows安装&启动&连接1. 下载压缩包2. 解压3. 安装服务4. 启动服务5. shell连接登录&退出6. Compass图形化连接登录三、Linux安装&启动&连接1. 下载压缩包2. 上传到服务器&解压3. 创建数据/日志存放目录4. 启动服务5. 登录6. Compass图形化连接登录四、基本常用命令1. 数据库相关2. 集合

欢迎来到 Baret-H 的博客 5万+

完美解决unknown failed to transfer from http://0.0.0.0/ during a previous attempt的错误

完美解决unknown failed to transfer from http://0.0.0.0/ during a previous attempt的错误

念兮为美 2279

MongoDB学习小结

(本文来源于我的工作笔记,是刚接触Mongo时整理的) 1,mongodb是面向文档类型的层次型数据库,documents -> collections -> databases -> mongodb; 2,在需要存储大数据量的情况下使用; 3,操作的语言是js,里面的对象是js生成的,例如mongo,collection,而里面的操作例如:find,sort,insert,update

Vince的修炼之路 1038

【ComfyUI】SD1.5 + ControlNet 边缘检测融合动漫转真人

本文介绍了一个基于ComfyUI的动漫转真人图像生成工作流,通过多模型协同实现高质量的二次元图像转换。该工作流集成了Canny线稿预处理、ControlNet结构控制、VAE编码解码和人脸精细化处理等核心环节,采用majicmixRealistic_v7作为主模型,配合yolov8、SAM等辅助模型。整个流程包含11个标准化步骤,从图像输入、预处理到最终超分输出,通过ControlNet引导和CLIP语义控制确保生成图像的写实感和结构准确性,特别针对人脸区域进行专业优化,最终可输出高分辨率写实人像。

Mr数据杨 1121

mongoDB小结

mongoDB小结 好长时间没有动手写博客了,坚持力还要再修炼修炼才是,哈哈就不发一堆感慨了,进入正题。 首先介绍一个非常非常好用的客户端,长得像一个绿色的火箭的东西Robo 3T.工具,做增删改查都很方便。 mongo安装 网上有很多mongo安装的教程,小编在这里就不一一介绍了,主要分为几个步骤: 1.下载mongo文件,直接从官网下载即可 2.上传文件到服务器,解压文件 ta...

董盛姣 479

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

MongoDB使用小结:一些常用操作分享

本文整理了一年多以来我常用的MongoDB操作,涉及mongo-shell、pymongo,既有运维层面也有应用层面,内容有浅有深,这也就是我从零到熟练的历程。 MongoDB的使用之前也分享过一篇,稍微高阶点:见这里:《MongoDB使用小结》 1、shell登陆和显示 假设在本机上有一个端口为17380的MongoDB服务,假设已经把mongo bin文件加入到系统PATH下。 登陆:...

weixin_30278237的博客 72

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

MongoDB 使用小结

一、MongoDB 设置账号和密码 使用ROTO 3T图形化客户端工具连接mongo时,MongoDB出现错误:Error: Failed to execute "listdatabases" command​ 错误:无法执行“listdatabases”命令,这时候需要用步骤2的命令创建一个管理员账户admin。 1.开启认证    MongoDB默认安装完成...

站在搜素引擎上的巨人 3591

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

Mongodb分片 学习小结

前一篇 https://www.cnblogs.com/frx9527/p/mongodb.html 学会搭建复制集Replication之后,就可以学习分片Sharding了。 教程建议看官方文档:https://docs.mongodb.com/manual/ 总结一下笔记,为了后续速查. 环境准备,安装,不再多述,如有问题查:https://docs.mongodb.com...

weixin_30480651的博客 180

mongodb的使用小结

最近在使用mongodb时遇到了一些小困难,这里记录下解决的过程 错误: ./mongostat: /usr/lib64/libssl.so.10: no version information available (required by ./mongostat) ./mongostat: /usr/lib64/libcrypto.so.10: no version information

wangzhaotongalex的专栏 6591

MongoDB 小结

MongoDB 小结

小楠的博客 750

Mongodb集群小结

上一篇写到集群的分片, 这次在这里做个小结: 在测试的时候发现以前的数据都是经过压缩之后再存储的。所以存在一个问题: 新建的切片上数据没有经过压缩,跟以前的数据压缩冲突。 解决办法: 把新建的切片也设置为存储压缩模式。如下: D:\MongoDBWiredTiger\bin>mongod --shardsvr --storageEngine wiredTiger --port 966

wsh_mar的专栏 330

安装MongoDB小结

安装包的下载url:  https://www.mongodb.org/dl/win32/x86_64-2008plus-ssl安装参考的url:  http://www.runoob.com/mongodb/mongodb-window-install.html我的安装内容:bin下文件:mongod.cfg    内容:    systemLog:     destination: file ...

zuozhiyoulaisam的专栏 257

mongodb使用小结

1,关于聚合(aggregate) >db.collection.aggregate(组合条件) 经常与管道操作符搭配使用,常用的管道操作符 $project:修改输入文档的结构。可以用来重命名、增加或删除域,也可以用于创建计算结果以及嵌套文档。 match:用于过滤数据,只输出符合条件的文档。match:用于过滤数据,只输出符合条件的文档。match:用于过滤数据,只输出符合条件的文档。...

weixin_43633810的博客 212

mongodb命令小结

常用基础命令 # 显示数据库 show dbs; # 显示集合 show collections; # 显示创建集合 db.createCollection('coll_name') # 隐式创建 db.coll.insert({}) # coll不存在就会创建 # 插入记录 db.coll.insert({}) # bson 格式 # 删除记录 db.coll.remove({...

疾风先生的博客 340
上一篇: golang学习小结
下一篇: 编译过程小结
卜睵·-嗳
博客等级 码龄5年 76粉丝 27原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值