01.MongoDB基本概念和原理

01.MongoDB基本概念和原理

2023年7月21日发(作者:)

B基本概念和原理⼀、MongoDB概述1、mongoDB概述MongoDB 是⼀个基于分布式⽂件存储的数据库。由C++语⾔编写2、NoSQL概述NoSQL,指的是⾮关系型的数据库。NoSQL 有时也称作Not Only SQL 的缩写,是对不同于传统的关系型数据库的数据库管理系统的统称。NoSQL ⽤于超⼤规模数据的存储3、关系数据库对⽐⾮关系数据库关系型数据库 NoSQL 数据库⾼度组织化结构化数据 代表着不仅仅是SQL结构化查询语⾔(SQL) 没有声明性查询语⾔数据和关系都存储在单独的表中 没有预定义的模式数据操作语⾔,数据定义语⾔ 键-值对存储,列存储,⽂档存储,图形数据库严格的⼀致性 最终⼀致性,⽽⾮ACID 属性基础事务 ⾮结构化和不可预知的数据 CAP 定理 ⾼性能,⾼可⽤性和可伸缩性4、NoSQL数据库分类列存储:Hbase/Cassandra⽂档存储:MongoDB/CounchDBkey-value存储:Redis/Memcache图存储:Neo4j/FlockDB对象存储:Db4oXML数据库:BaseX5、CAP原则CAP 定理(CAP theorem), ⼜被称作布鲁尔定理(Brewer's theorem), 它指出对于⼀个分布式计算系统来说,不可能同时满⾜以下三点:⼀致性(Consistency) (所有节点在同⼀时间具有相同的数据)可⽤性(Availability) (保证每个请求不管成功或者失败都有响应)分区容错性(Partition tolerance) (系统中任意信息的丢失或失败不影响系统的继续运⾏)CAP 理论的核⼼是:⼀个分布式系统不可能同时很好的满⾜⼀致性,可⽤性和分区容错性这三个需求,最多只能同时较好的满⾜两个根据CAP 原理将NoSQL 数据库分成了满⾜CA 原则、满⾜CP 原则和满⾜AP 原则三⼤类:CA - 单点集群,满⾜⼀致性,可⽤性的系统,通常在可扩展性上不太强⼤。CP - 满⾜⼀致性,分区容错性的系统,通常性能不是特别⾼。AP - 满⾜可⽤性,分区容错性的系统,通常可能对⼀致性要求低⼀些。⼆、MongoDB体系结构关系数据库DatabaseTableRowColumnIndexTable joinMongoDBDatabaseCollectionDocumentFieldIndex

解释对⽐数据库/数据库数据库表/集合数据库记录⾏/⽂档数据列/数据字段索引/索引表关联/MongoDB不⽀持主键/MongoDB⾃动将_id设为主键Primary keyObject ID

三、MongoDB数据类型BSONBSON( Binary Serialized Document Format) 是⼀种⼆进制形式的存储格式,采⽤了类似于 C 语⾔结构体的名称、对表⽰⽅法,⽀持内嵌的⽂档对象和数组对象,具有轻量性、可遍历性、⾼效性的特点四、MongoDB底层原理MongoDB 的集群部署⽅案中有三类⾓⾊:实际数据存储结点、配置⽂件存储结点和路由接⼊结点。MongDB客户端访问过程:连接的客户端直接与路由结点相连,从配置结点上查询数据,根据查询结果到实际的存储结点上查询和存储数据。MongoDB 的部署⽅案:单机部署、复本集(主备)部署、分⽚部署、复本集与分⽚混合部署。1、混合的部署⽅式如下图:混合部署⽅式下向MongoDB 写数据的流程如图:混合部署⽅式下读MongoDB ⾥的数据流程如图:2、复本集、⼜有主和从两种⾓⾊,写数据和读数据也是不同,写数据的过程是只写到主结点中,由主结点以异步的⽅式同步到从结点中下⾯是写数据图⽰:读数据则只要从任⼀结点中读取,具体到哪个结点读取是可以指定的、图⽰如下:MongoDB 的分⽚:分⽚(sharding)是将数据拆分,将其分散存到不同机器上的过程。MongoDB ⽀持⾃动分⽚,可以使数据库架构对应⽤程序不可见。对于应⽤程序来说,好像始终在使⽤⼀个单机的 MongoDB 服务器⼀样,另⼀⽅⾯,MongoDB ⾃动处理数据在分⽚上的分布,也更容易添加和删除分⽚。假设我们以某⼀索引键(ID)为⽚键,ID 的区间[0,50],划分成5 个chunk,分别存储到3 个⽚服务器中,如图所⽰:MongoDB配置结点:(保存集群和分⽚的元数据) 存储配置⽂件的服务器其实存储的是⽚键与chunk 以及chunk 与server 的映射关系,⽤上⾯的数据表⽰的配置结点存储的数据模型如下表: MongoDB路由结点:路由⾓⾊的结点在分⽚的情况下起到负载均衡的作⽤。五、MongoDB应⽤场景1、⽹站实时数据量⼤2、数据读写都很频繁3、价值较低

发布者:admin,转转请注明出处:http://www.yc00.com/news/1689901516a293451.html

相关推荐

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信