MongoDB基本概念

MongoDB基本概念

文档(document)

文档是MongoDB数据的基本单元,对等数据库中的行,但是比行复杂,每个文档都有一个特殊的键"_id",作为文档唯一标识。多个键及其关联的值有序地放置在一起便是文档。

  • 文档以BSON格式存储,是Binary JSON的简称,是一个JSON文档对象的二进制编码格式,如下:
  • {
        name: "wjy",
        age: 26,
        groups: ["news","sprots"],
    }
  • 需要注意
    • 文档中的键/值对是有序的。
    • 文档中的值不仅可以是在双引号里面的字符串,还可以是其他几种数据类型(甚至可以是整个嵌入的文档)。
    • MongoDB区分数据类型和大小写。
    • MongoDB的文档不能有重复的键。

集合(collection)

集合是MongoDB得文档组,对等数据库的表格,没有固定的模式,集合里面的文档是各式各样的。

  • 集合不需要事先建好表,会在文档插入时自动创建。
  • 集合不能为空字符串,不能以"system."开头。

数据库(database)

MongoDB中多个文档组成集合,同样多个集合组成一个数据库。

  • Mongdb的单实例可以容纳多个独立的数据库。
  • 每一个都有自己的集合和权限,不同数据库也放置在不同的文件中。
  • 运行“use”命令,可以连接一个指定数据库。

复本集架构

 

 

 

分片架构

 

 

分片的主要优势

  • 对集群进行抽象,有mongos掌握统一路口,将客户端的请求精确的路由到集群中的一个或者一组服务器上。
  • 保证集群总是可读写。
  • 使集群以扩展。

分片的劣势

  • 数据量较少时不建议使用sharding,毕竟读写都要经过一层路由会有性能损耗,直接表现就是ips和qps会降低。

片键

MongoDB中数据的分片是以集合为基本单位,集合中数据通过片键被分成多个部分。所以一个好的片键对分片至关重要。

  • 片键策略
  • 散列键:写入随机,读取按升序键读;
  • GridFS散列键:写请求均匀分配,读请求在一个分片上;
  • 多热点:多片键,第一个键可以分配在各个集群中,第二键升序键,如_id等,这样在读取时,每个片都是升序排列,又会散列多个分片中;

 

posted @ 2019-11-12 11:20  泯夕  阅读(188)  评论(0)    收藏  举报