папка windows с миллионами файлов не отвечает

9

Я использую Windows 7 (64-разрядную версию) на процессоре Intel Q6600 с 4 ГБ оперативной памяти.

У меня есть папка с 2 миллионами файлов, со средним размером файла 10 КБ.

Проводник Windows перестает отвечать при открытии папки. Как я могу преодолеть это?

eyaler
источник
17
Не храня два миллиона файлов в одной папке ...
Даниэль Бек
4
Вы знаете, что еще хуже .. пытаясь удалить эту папку .. удачи :(
Петр Кула
2
@Shinrai, как отмечает Роджер в своем ответе, NTFS в порядке, это Explorer, у которого есть много работы, когда вы открываете папку.
Дсолимано
1
@dsolimano - Вот почему я оставил ответы на вопросы более знающих людей, чем я. :)
Shinrai
2
В итоге я начал заново и разделил свои папки на подпапки по годам и месяцам.
eyaler

Ответы:

11

Вы можете преодолеть это, используя более разумную структуру для ваших файлов. Хотя Explorer будет поддерживать каталоги с миллионами файлов, он не предназначен для такого сценария, и производительность будет низкой.

Для получения дополнительной информации см. Эту статью TechNet:

http://technet.microsoft.com/en-us/magazine/hh395477.aspx

Роджер
источник
Мне нравится объяснение Рэймонда. Я был бы зол, если бы Microsoft потратила деньги на тестирование Explorer в такой нишевой ситуации.
Surfasb
imho, официальные рекомендации и / или системные предупреждения были бы более уместными, чем (не) извиняющаяся статья technet.
eyaler
Это просто ограничение файловой системы ... оно было ошибочным с момента создания NTFS, затем они попытались исправить ti с помощью индексации ... но это просто мусор, вперёд ZFS
Петр Кула
Это не ограничение файловой системы - это проблема отображения. NTFS может хранить неограниченное количество файлов на том. Проблема в том, что очень сложно создать пользовательский интерфейс, который будет отображать каталог из двух миллионов файлов - и зачем MSFT беспокоиться об этом? Кто будет просматривать столько файлов?
Роджер
7

К сожалению, Windows не может обрабатывать более 80 тысяч файлов в папке аккуратно и эффективно (по крайней мере, на сервере Xeon 2,8 ГГц с 4 ГБ ОЗУ)

Это начинает терпеть крах и гореть около 60 КБ.

При 200k перечисление папки занимает 2 дня. У нас была эта проблема с папкой badmail с использованием Windows Exchange. Единственный способ преодолеть это - создать тысячи папок (которые он может нормально обрабатывать) с файлами внутри этих папок с большим количеством папок.

В противном случае вам следует серьезно рассмотреть возможность сброса этих данных в файл SQL, используя SQLExpress, который является бесплатным, или MySQL, который также является бесплатным. Напишите небольшую программу, чтобы справиться с ней, и вам будет хорошо - это то, что мы сделали с нашими 200k файлами, и теперь у нас есть более 12 миллионов отсортированных писем с быстрым доступом.

Петр Кула
источник