mongodb小结

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还具有自动故障转移和自动恢复等功能,当节点发生故障时会自动将其替换为备用节点,保证系统的高可用性和数据的安全性。
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值