所以,我在测试中遇到了一个问题(不幸的是没有答案),这让我很怀疑它是真是假。
问题是这样的:“默认情况下,WiredTiger 存储引擎为每个集合和每个索引创建一个文件”。
我去检查了所有的文档,但我找不到这个问题的真正令人满意的答案。我会根据逻辑假设它当然会为每个集合创建一个文件,每个索引创建一个文件,但是如何确定呢?我认为这些文件由数据库系统管理,因此对用户不可见。
我只记得某处有数据库文件看起来像 dbname.0,当它在某个阈值后增长时,它会创建另一个文件 dbname.1 等。所以我假设集合在该文件中而不是一个单独的实体,从而使测试语句错误?
是的,WiredTiger 引擎为每个集合和每个索引创建一个文件。
文件是由存储引擎部分维护的存储层的一部分。您可以在用于启动服务器实例的配置文件中指定的 dbpath 中找到创建的文件。例如,如果您的底层操作系统是 ubuntu,则默认配置文件路径为:
/etc/mongod.conf
对于 WiredTiger 引擎,当您创建任何集合时,您将能够找到新文件,例如:
collection-22--9037026691096837958.wt index-23--9037026691096837958.wt
这里的数字 22,23 表示存储引擎的集合和索引的唯一标识,并与存储引擎的元数据一起维护。
在关于阈值问题的最后一部分,您可能对存储容量限制感兴趣,因此您可以考虑访问以下链接:
https://docs.mongodb.com/manual/reference/limits/ https://stackoverflow.com/questions/4327723/mongodb-limit-storage-size