mongodb学习流水笔记

数据结构:
  由三个层次构成:database  collection document,分别对应传统数据库的:数据库,
表,记录。
  mongdb采用BSON结构存储文档,该结构类似Json

数据存储
  mongdb内部,每个数据库都包含一个.ns文件和一些数据文件(直接可见),这些数据文件会随着数据量的增加而变多,例如:一个名为test的数据库,他的构成为:test.ns,test.1,test.2,test.3等。而且文件大小依次加倍,从16MB开始,最大为2G,这能减少碎片的产生。为了避免数据爆增带来的磁盘压力,mongo采用预分配机制

内存映射
  文件采用MMAP进行内存映射,会将所有数据映射到内存中,但是是虚拟内存,所以mongo在32位系统上只能映射大概2.5G数据。

索引
  mongodb默认总是以_id字段创建索引,索引信息保存在system.indexes中。可以使用db.collection.ensureIndex({index:1})的命令创建新的索引,1表示索引是升序排列。索引采用BTree结构

查找
  当客户端(mongoshell或者javaAPI)在进行查找操作时,数据库并没有返回真正的数据,而是返回一个游标(cusor),只有当真正用到该条数据时才到数据库中读取出来。

单机:
  启动mongo服务端
        ./mongod
         基本参数:--dbpath数据存储位置       --port 端口
                   --logpath 日志位子           --logappend 日志接着记录
  mongodb的NUMA问题
    在启动命令前加  numactl --interleave=all

复制集
  mongodb的复制机制有两种:
    Master-Slave:在mongod启动时加上“-master”或者“-slave”命令
    Replica Sets:比Master-Slave强大,各个节点数据一致。

分片:
  一个mongodb的sharding cluster需要三个角色:
    Shard Server:可以是一个mongod实例,也可以是一组Replica Sets
     例:./mongod --shardsvr--port 端口 --dbpath 存储位置 --logpath日志位置 --logappend
    Config Server:管理shard key和collection的shard信息
     例:./mongod --configsvr--port 端口 --dbpath 存储位置--logpath 日志位置 --logappend
    Route Process:客户端由此接入
     例:./mongos --port 端口 --configdb ConfigServerIP:ConfigServerPort --logpath 日志位置 --logappend --chunkSize chunk大小(默认为200MB)

    配置Sharding:
     从客户端链接到Route上,输入以下命令:
     db.runCommand({addshard:"ShardServerIP:ShardServerPort"})
     ...把所有的shard server都加入
     db.runCommand({enablesharding:"需要shard的database"})
     db.runCommand({shardcollection:"database.collection",key:{shardkey:1}})确定需要shard的collction以及相应的shardkey。
 
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值