我一直在将带有报告的照片上传到 mongodb。我已达到数据库大小限制。如何增加数据库的大小?
db.stats()
{
"db" : "fieldops",
"collections" : 6,
"objects" : 20454,
"avgObjSize" : 890464.9997066589,
"dataSize" : 18213571104,
"storageSize" : 18432802736,
"numExtents" : 52,
"indexes" : 4,
"indexSize" : 809424,
"fileSize" : 21398290432,
"nsSizeMB" : 16,
"extentFreeList" : {
"num" : 0,
"totalSize" : 0
},
"dataFileVersion" : {
"major" : 4,
"minor" : 22
},
"ok" : 1
}
另外,顺便说一句。我现在每个月上传 12,000 张照片。我读到 mongodb 的限制是 16,000。我在词汇表中data file
找不到 的定义。这是指我上传到数据库的图片吗?那么,一旦发生这种情况,我必须设置一个带有分片的单独服务器吗?或者我可以在同一台机器上创建一个分片吗?data file
buffered
提前致谢。
答案1
我一直在将带有报告的照片上传到 mongodb。我已达到数据库大小限制。如何增加数据库的大小?
假设您有可用的磁盘空间,MongoDB 将根据需要自动分配额外的磁盘空间。由于您正在运行 MMAP 存储引擎(根据您的db.stats()
输出),MongoDB 将以递增的增量预分配空间,每个新文件最多 2GB(如果您恰好使用smallFiles
选项)。假设您的数据库当前大于 18GB,您将需要至少 2GB 的可用空间(如果您的临时目录位于同一卷上,还需要一些用于 O/S 的空间)。
集合的文档数量没有限制,除非你恰好使用具有指定上限的集合max
限制(必须小于 2^32)。MongoDB 生产部署中有数万亿个文档(参考:MongoDB 规模化)。
MongoDB 3.0+ 具有存储引擎 API,因此可能存在一些因存储引擎而异的限制。例如,数据大小限制对于使用经典 MMAPv1 存储引擎的单个服务器,mongod
在启用日志功能的情况下,通常有 64 TB 的数据。WiredTiger 存储引擎(3.0 中为可选,3.2+ 中为默认)没有此限制。
每月插入数万份文件应该不是问题。
更多信息请参阅:MongoDB 限制和阈值。