Вот несколько советов от кого-то, у кого есть папки, содержащие десятки миллионов файлов.
- Папка хранит информацию индекса (ссылки на дочерние файлы и дочернюю папку) в файле индекса. Этот файл станет очень большим, когда у вас много детей. Обратите внимание, что он не различает дочерний элемент, являющийся папкой, и дочерний элемент, представляющий собой файл. Единственное отличие на самом деле состоит в том, что содержимое этого дочернего элемента является либо индексом дочерней папки, либо данными дочернего файла. Примечание: я несколько упрощаю это, но это ясно.
- Индексный файл будет фрагментирован. Когда он станет слишком фрагментированным, вы не сможете добавлять файлы в эту папку. Это потому, что есть ограничение на количество фрагментов, которые разрешены. Это по замыслу. Я подтвердил это с Microsoft в звонке в службу поддержки. Поэтому, хотя теоретическое ограничение на количество файлов, которое вы можете иметь в папке, составляет несколько миллиардов, удачи вам, когда вы начнете использовать десятки миллионов файлов, так как сначала вы достигнете ограничения фрагментации.
- Однако не все так плохо. Вы можете использовать инструмент: contig.exe для дефрагментации этого индекса. Это не уменьшит размер индекса (который может достигать нескольких гигабайт для десятков миллионов файлов), но вы можете уменьшить количество фрагментов. Примечание. Инструмент дефрагментации диска НЕ будет дефрагментировать индекс папки. Это будет дефрагментировать данные файла. Только инструмент contig.exe будет дефрагментировать индекс. К вашему сведению: вы также можете использовать это для дефрагментации данных отдельного файла.
- Если вы ДЕЙСТВУЕТЕ дефрагментацию, не ждите, пока не достигнете максимального числа фрагментов. У меня есть папка, в которой я не могу дефрагментировать, потому что я ждал, пока не станет слишком поздно. Мой следующий тест - попытаться переместить некоторые файлы из этой папки в другую, чтобы посмотреть, смогу ли я выполнить их дефрагментацию. Если это не удастся, то мне нужно будет 1) создать новую папку. 2) переместить пакет файлов в новую папку. 3) дефрагментировать новую папку. повторяйте # 2 и # 3 до тех пор, пока это не будет сделано, а затем 4) удалите старую папку и переименуйте новую папку, чтобы она соответствовала старой.
Чтобы ответить на ваш вопрос более прямо: если вы просматриваете 100 000 записей, не беспокойтесь. Иди в себя. Если вы просматриваете десятки миллионов записей, то либо:
a) Планируйте подразделить их на подпапки (например, допустим, у вас есть 100 млн. Файлов. Лучше хранить их в 1000 папок, чтобы у вас было только 100 000 файлов в папке, чем в 1 большой папка. Это создаст 1000 индексов папок вместо одного большого, который с большей вероятностью достигнет максимального числа фрагментов или
b) Планируйте запуск contig.exe на регулярной основе для дефрагментации индекса большой папки.
Читайте ниже, только если вам скучно.
Фактическое ограничение не на количество фрагментов, а на количество записей в сегменте данных, в котором хранятся указатели на фрагмент.
Итак, у вас есть сегмент данных, в котором хранятся указатели на фрагменты данных каталога. Данные каталога хранят информацию о подкаталогах и подфайлах, которые каталог предположительно хранил. На самом деле, каталог ничего не «хранит». Это просто функция отслеживания и представления, которая создает иллюзию иерархии для пользователя, поскольку сам носитель данных является линейным.