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