1-2 支持多大数据量
最后更新于:2022-04-02 07:39:14
## **限制**
>MongoDB通常适用于64位操作系统,32位系统只能寻址4GB内存,意味着数据集包含元数据和存储达到4GB,Mongodb就无法存储额外的数据了,强烈建议32位系统使用Mongodb可以自己测试使用,生产环境一地使用64位操作系统。
最大文档大小有助于确保单个文档不会使用过多的RAM或在传输过程中占用过多的带宽。要存储大于最大大小的文档,MongoDB提供了GridFS API。
MongoDB支持BSON文档嵌套的级别不超过100。
**数据库命名限制**
由于数据库名称在MongoDB中*不区分大小写*,因此数据库名称不能仅因字符的大小写而不同。
对于在Windows上运行的MongoDB部署,数据库名称不能包含以下任何字符:
> /\. "$*<>:|?
对于在Unix和Linux系统上运行的MongoDB部署,数据库名称不能包含以下任何字符:
> /\. "$
数据库名称也不能包含空字符。数据库名称不能为空,并且必须少于64个字符。
**集合命名限制**
集合名称应以下划线或字母字符开头,并且*不能*:
> 包含`$`。
> 是一个空字符串(例如`""`)。
> 包含空字符。
> 以`system.`前缀开头。(保留供内部使用)
集合名称空间的最大长度为120个字节,其中包括数据库名称,点(`.`)分隔符和集合名称(即`.`)
**字段命名限制**
>字段名称**不能**包含`null`字符。
>顶级字段名称**不能**以美元符号(`$`)字符开头。
其他情况,从MongoDB 3.6开始,服务器允许存储包含点(即`.`)和美元符号(即`$`)的字段名称。
mognodb 不支持重复的字段名称,即使程序插入成功,没有抛出异常,驱动程序会导致在插入之前默认删除重复值。
**命名空间**
>集合名称空间的最大长度为120个字节,其中包括数据库名称,点(`.`)分隔符和集合名称(即`.`)
在版本3.0中更改。
>对于MMAPv1,名称空间的数量限于名称空间文件的大小除以628,一个16 MB的名称空间文件可以支持大约24,000个名称空间。每个集合和索引都是一个名称空间。
WiredTiger存储引擎是*不是*受到这个限制。
这也是为什么在MongoDB4.2从4.2版开始,删除不推荐使用的MMAPv1存储引擎的原因。
**副本集**
>在Mongodb3.0中副本集成员最最多支持50个,也就是说副本集做大支持50个节点,副本集每个节点数据支持32T,副本集每个实例建议数据不要超过4T,数据量大备份恢复时间会很长。
**存储限制**
我们通常分片会使用默认的chunk大小为64M,如果我们的分片key (片键)values值是512字节,分片节点支持最大32768个也就是最大支持数据量为32768TB。
分片key不能超过512字节。
![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/ca/7c/ca7c6fb314c2d7023e3d8e6faea34e88_1462x790.png)
';