• MongoDB存储 仅此而已


    数据结构

    • mongodb是文档型数据库,使用BSON格式保存数据。
    • mongodb使用B-树,每个节点既保存数据又保存索引,搜索时相当于二分查找。

    ObjectId

    每个document中必须有一个_id字段,如果在实体类上没有单独设置_id字段,mongo会自动生成一个_id字段,类型是ObjectId。如:"_id": ObjectId("628457e73c79063221a67e2f")

    "628457e73c79063221a67e2f",这个24位的字符串,实际上是有一组十六进制的字符构成,总共用了12字节的存储空间。包括:

    • 4字节的时间戳(可以用于排序)
    • 3字节的机器标识码
    • 2字节的PID
    • 3字节的自增计数器生成的随机数

    mongo排序时内存大小限制

    mongodb处理排序时,如果排序的字段没有建立索引,会将全表都丢到内存中处理。而内存的大小并不是无限使用的。

    在mongodb 版本4.3以前,内存限制默认是32M,版本4.3以后,默认是100M,一旦数据量超过最大限制,就会报错。

    通过命令行可以参考内存排序限制:

    #登录命令
    /usr/local/qingteng/mongodb/bin/mongo --host localhost --port 27017 -u qingteng -p fMElKUz36MY00ceg --authenticationDatabase admin
     
    #登录成功过后,执行命令
    db.runCommand({
        getParameter: 1,
        "internalQueryExecMaxBlockingSortBytes": 1
    })

    执行结果如下:

    注意:如果mongodb版本是4.3以上版本,上面的参数要改为 internalQueryMaxBlockingSortMemoryUsageBytes

    在执行 aggregate 操作时,如果超过了内存限制,可以使用 allowDiskUse 选项,将选项允许大部分的 aggregate 操作将数据写入一个临时磁盘空间。

  • 相关阅读:
    如何让你的Ssh连接,更加安全?
    邮件系统的新的打开方式,你值得拥有?
    前端之html语言
    Python之进程线程
    Python基础之模块
    Python基础之内置函数
    购物车
    Python基础函数之函数式编程
    Python基础之基本数据类型二《列表,元祖,字典及集合》
    Python基础之函数,递归。
  • 原文地址:https://www.cnblogs.com/xuwenjin/p/16340321.html
Copyright © 2020-2023  润新知