Я также полагал, что распространение файлов по подкаталогам ускорит операции.
Итак, я провел тесты: я сгенерировал файлы от AAAA до ZZZZ (26 ^ 4 файла, это около 450 КБ) и поместил их в один каталог NTFS.Я также поместил идентичные файлы в подкаталоги от AA до ZZ (то есть сгруппировал файлы по первым 2 буквам их имен).Затем я выполнил несколько тестов - перечисление и произвольный доступ.Я перезагрузил систему после создания и между тестами.
Плоская структура демонстрирует чуть лучшую производительность, чем подкаталоги.Я считаю, что это потому, что каталоги кэшируются и NTFS индексирует содержимое каталога, поэтому поиск выполняется быстро.
Обратите внимание, что полное перечисление (в обоих случаях) заняло около 3 минут для файлов размером 400 КБ.Это значительное время, но подкаталоги делают его еще хуже.
Вывод: в частности, в NTFS нет смысла группировать файлы в подкаталоги, если доступ к любому из этих файлов возможен.Если у вас есть кеш , я бы также протестировал группирование файлов по дате или по домену, предполагая, что к некоторым файлам обращаются чаще, чем к другим, и ОС не нужно хранить все каталоги в памяти.Тем не менее, для вашего количества файлов (до 100 КБ) это, вероятно, также не даст существенных преимуществ.Я думаю, вам нужно измерить такие конкретные сценарии самостоятельно.
Обновление: Я сократил свой тест для произвольного доступа, чтобы получить доступ только к половине файлов (от AA до OO).Предполагалось, что это будет включать один плоский каталог и только половину подкаталогов (что дает бонус к случаю подкаталога).Все-таки плоский каталог выполнен лучше.Поэтому я предполагаю, что если у вас нет миллионов файлов, хранить их в едином плоском каталоге в NTFS будет быстрее, чем группировать их в подкаталоги.