mongodb的内部数据结构:
①:mongodb会给每个数据库预先分配好逐渐增长的文件集
②:文件集序号依次为0,1,2…大小依次是64m,128m,256m,512m,1g,2g,然后最大一直以2g的空间创建下去(值得注意的是32位系统最大是512m)
③:文件集在内部会被切分成多个数据域,数据域之间使用双向链表连接
④:不同数据域的存储类别用名字空间区分,如每个集合有自己独立的名字空间,每个索引也有自己独立的名字空间
mongodb中ObjectId的结构解读:
①:ObjectId 使用12 字节的存储空间,每个字节两位十六进制数字,是一个24 位的字符串
5c46d740 aff687 4b5d c79d31
②:前四个字节(也就是前8位)是由时间戳组成,
后三个字节代表主机唯一标识,
再后面两个字节代表进程ID,
最后三个字节代表自增的随机数
mongodb的集合(collection)和database结构剖析:
①:collection命名不能超过120个字节
②:对于MMAPV1引擎,最多存储24000个collection,但wiredTiger没有限制
③:每个database不得超过16000个数据文件,并且单个database的总数据量不得超过32TB*