采用 NTFS 的 Windows 如何处理大量文件和目录?
在遇到性能问题或其他问题之前,是否有关于可以放置在单个目录中的文件或目录限制的任何指导?
例如。拥有一个包含 100,000 个文件夹的文件夹可以吗?
以下是来自某个环境中的一些建议,其中我们的文件夹包含数千万个文件。
- 文件夹将索引信息(指向子文件和子文件夹的链接)存储在索引文件中。当你有很多孩子时,这个文件会变得非常大。请注意,它不区分文件夹子级和文件子级。唯一的区别实际上是该子项的内容是子项的文件夹索引或子项的文件数据。注意:我稍微简化了这一点,但这已经说明了要点。
- 索引文件将变得碎片化。当它变得过于碎片时,您将无法将文件添加到该文件夹。这是因为允许的片段数量有限制。这是设计使然。我已在支持事件电话中向 Microsoft 确认了这一点。因此,尽管理论上一个文件夹中可以包含的文件数量限制为数十亿,但当您开始处理数千万个文件时,祝您好运,因为您将首先达到碎片限制。
- 不过,这也不全是坏事。您可以使用该工具:重叠群.exe http://technet.microsoft.com/en-us/sysinternals/bb897428对该索引进行碎片整理。它不会减少索引的大小(对于数千万个文件来说,索引的大小可以达到几 Gig),但可以减少碎片数量。注意:磁盘碎片整理工具不会对文件夹的索引进行碎片整理。它将对文件数据进行碎片整理。只有 contig.exe 工具会对索引进行碎片整理。仅供参考:您还可以使用它来对单个文件的数据进行碎片整理。
- 如果您确实进行碎片整理,请不要等到达到最大碎片数限制。我有一个文件夹无法进行碎片整理,因为我一直等到为时已晚。我的下一个测试是尝试将一些文件从该文件夹移到另一个文件夹中,看看是否可以对其进行碎片整理。如果失败,那么我要做的是 1)创建一个新文件夹。 2)将一批文件移动到新文件夹中。 3) 对新文件夹进行碎片整理。重复 #2 和 #3 直到完成,然后 4) 删除旧文件夹并重命名新文件夹以匹配旧文件夹。
更直接地回答您的问题:如果您正在查看 100K 条目,请不用担心。去把自己打垮吧。如果您正在查看数千万条条目,那么:
a) 制定计划将它们细分为子文件夹(例如,假设您有 100M 个文件。最好将它们存储在 1000 个文件夹中,这样每个文件夹只有 100,000 个文件,而不是将它们存储在 1 个大文件夹中。这将创建 1000 个文件夹索引,而不是更有可能达到最大片段数限制的单个大索引,或者
b) 制定计划定期运行 contig.exe,以保持大文件夹的索引碎片整理。
仅当您感到无聊时才阅读以下内容。
实际的限制不是在片段的数量上,而是在存储指向片段的指针的数据段的记录数上。
所以你拥有的是一个数据段,它存储指向目录数据片段的指针。目录数据存储有关该目录应该存储的子目录和子文件的信息。实际上,目录并不“存储”任何东西。它只是一个跟踪和呈现功能,向用户呈现层次结构的错觉,因为存储介质本身是线性的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)