zoukankan      html  css  js  c++  java
  • mongo12---手动预先分片

    手动预先分片:(每个片上的数据是不一样的,是分开存,不是做备份)
    
    自动分片有可能短期内某个片的数据过大,硬盘不够用了。能否100000-20000就到0号片,200000-30000就到1号片。
    
    
    //以shop.user表为例,先声明shop库下的user表做分片,并且片建是userid
    sh.shardCollection('shop.goods',{userid:1});
    
    sh.status()  //查看分片信息
    
    //800万用户,分2个服务器,每个服务器400万,每个服务器100个片,每个片4万数据。
    
    
    //40个块,每个块1000条,2个片,每个片20个块,每个片20条数据
    use shop
    for(var i=1;i<=40;i++) { //对shop.user表切割,碰到1000,20003000,...40000就切。预先在1K 2K...40K这样的界限切好chunk(虽然chunk是空的), 这些chunk将会均匀移动到各片上.每1000个数据一个块。
        sh.splitAt('shop.user',{userid:i*1000}) 
    }
    sh.status()//查看块
    
    
    3: 通过mongos添加user数据. 数据会添加到预先分配好的chunk上, chunk就不会来回移动了.
    for(var i=1;i<=40000;i++) {
        db.user.insert({userid:i,name:"kitty"})  //40000个用户分层了40个块,并且40个块在2个片上也分割完毕。每个片20000条。
    }
       连接到不同的片上去看,也可以看status。
    //预先分片要预先规划好,后面增加片,移动片时就会拖垮服务器。

  • 相关阅读:
    iOS 网络编程:socket
    Zsh和Bash,究竟有何不同
    关于微软win10 2004的更新以及wsl2 Ubuntu18.04安装
    C# 委托事件机制 订阅发布
    关于Docker理念和安装,对Visual Studio2019自带生成的DockerFile配置,以及Docker镜像的发布与拉取
    div弹框
    vs分页
    ado显示下拉
    SQL server动态拼接存储过程分页
    退役
  • 原文地址:https://www.cnblogs.com/yaowen/p/8176116.html
Copyright © 2011-2022 走看看