zoukankan      html  css  js  c++  java
  • MongoDB TTL集合与固定集合

    1、固定集合
        MongoDB可以创建固定长度的集合,可以设置最大的集合空间或最大的集合数。创建集合的语法如下:
        db.createCollection("collection-name", { option对象 }); # option都为可选对象,可选项如下:
    可选参数
       类型
       说明
      capped
       boolean
       默认为false则为正常的集合,当设置为true时,则为固定长度集合,到达设置的空间或集合长度的上线,则会删除最老的数据
      
       autoIndexId
       
       boolean
       为true则在_id上自动创建索引。默认为true,为唯一索引,建立后就不能进行删除索引
      size
       
       数字(单位字节)
       
       前提是capped设置为true。指定集合能使用的数据空间上限。
      max
       
       数字(文档数)
       
       前提是capped设置为true。指定集合能使用的最大文档数据。当文档空间和最大文档数时,谁先到达限制都会触发,而扔掉最老的文档
           db.createCollection("user-max",{capped:true,size:1000000,max:10000,autoIndexId:true});
     
     
     
    固定集合特点:
        1、到达数据空间或者文档数的上限,则扔掉最老的文档
        2、MySQL的数据copy使用的是binlog,而MongoDB数据copy则使用固定长度的集合
        3、固定集合不能转换为正常的集合,正常的集合可以转化为固定集合,转化方式如下:
            db.runCommand({"covertToCapped":"collection-name", size:100000,max:1000});
     
     
    2、TTL索引
        使用固定集合的方式,不能确认会将哪些数据扔掉。很多时候我们需要保存一段时候的数据,如前面提到的MongoDB应用中的使用--删除旧数据场景。就可以在集合中根据每个文档定时删除不需要的文档,若需要保存数据,则可以让大数据定时将数据抽取走。为集合的创建日期设置一个TTL索引,如下:
          # 保存最近三个月的文档(单位秒),当中途修改了createdAt的值时,则不会删除文档(指定的时间是字段与当前时间的差值)
        db.user.createIndex({"createdAt": 1},{expireAfterSeconds: 60*60*24*3});
     
        # 若需求变动,需要将三个月修改为一个月可以使用collMod,如下:
      db.runCommand({collMod: 'user', index: {keyPattern:{"createdAt": 1}, expireAfterSeconds:60*60*24*1}});
     
      TTL集合特点:
        1、TTL索引是单字段索引,不能使用在聚合索引上
        2、_id主键上不能建立TTL索引
        3、一个集合上可以建立多个TTL索引
        4、不能在普通索引上再创建TTL索引,只能删除再建
        5、TTL索引可以用于普通索引一样进行排序和查询
        6、TTL索引会每分钟检查超时文档,并进行删除操作。需要注意删除时候的并发问题(不要影响线上业务)。
     

    原文链接:https://blog.csdn.net/it_lihongmin/article/details/81739988
  • 相关阅读:
    excel中年月日格式的数据分离出年
    Vision MLP 之 Sparse-MLP A Fully-MLP Architecture with Conditional Computation
    Vision MLP 之 S2-MLP V1&V2 : Spatial-Shift MLP Architecture for Vision
    Visoin MLP之CycleMLP A MLP-like Architecture for Dense Prediction
    Vision MLP之RaftMLP Do MLP-based Models Dream of Winning Over Computer Vision
    Vision MLP之Hire-MLP: Vision MLP via Hierarchical Rearrangement
    显著性目标检测之Learning to Promote Saliency Detectors
    paddle中的LoDTensor
    C语言0长度数组(可变数组/柔性数组)
    1、迭代器失效
  • 原文地址:https://www.cnblogs.com/xibuhaohao/p/12016921.html
Copyright © 2011-2022 走看看