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