Будет ли слишком много файлов, хранящихся в одной папке, замедлять HTTP-запрос для одного из них? - PullRequest
5 голосов
/ 10 августа 2011

У меня есть почти миллион изображений для моего сайта, и они хранятся в одной папке на моем сервере Windows.

С тех пор, как я открыл эту папку прямо на настольном компьютере, я и мой ЦП сошли с ума, и мне стало интересно, является ли трудным получение одной из них с использованием моего сценария PHP для HTTP-запроса.
Итак, повысит ли разделение их на разные папки?

Ответы [ 3 ]

3 голосов
/ 10 августа 2011

Нет, производительность не зависит от количества файлов в каталоге. Причина, по которой открытие папки в проводнике Windows происходит медленно, заключается в том, что для каждого файла приходится отображать значки и различные другие элементы, связанные с графическим интерфейсом.

Когда веб-сервер выбирает файл, он не должен этого делать. Он просто (более или менее) напрямую попадает в местоположение файла на диске.

РЕДАКТИРОВАТЬ: Миллионы это своего рода расширение ограничений вашей файловой системы (я полагаю, NTFS в вашем случае). Похоже, что более 10000 файлов в каталоге начинает ухудшать вашу производительность. Поэтому не только с точки зрения производительности, но и с точки зрения организации вы можете рассмотреть возможность их разделения на подкаталоги.

1 голос
/ 10 августа 2011

Часто лучший ответ в подобном случае - это сравнить его. Не должно быть слишком сложно создать программу, которая открывает 1000 жестко закодированных имен файлов и закрывает их. Запустите тестирование в своем каталоге с миллионами и другом каталоге, содержащем только те 1000 проверяемых файлов, и посмотрите, есть ли разница.

Мало того, что основная файловая система имеет значение, но и доступ по сети может также повлиять на результаты.

0 голосов
/ 11 августа 2011

Разделение ваших файлов на отдельные каталоги, скорее всего, повысит производительность. Но, как показывает Марк, это, вероятно, стоит сравнить с

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...