Каким образом хранить огромное кол-во фото на сервере?

программирование php сервер unix системное администрирование

В одной из папок на сервере, куда копируются фотографии пользователей скопилось очень много файлов. Попытался открыть эту папку - winscp думал минут 15)) Всвязи с тем что со временем количество файлов в этой папке будет сильно возрастать встал вопрос: Каким образом лучше всего хранить очень большое количество фотографий на сервере и как удобнее всего получать к ним доступ с помощью php?

Т.к. я раньше с таким не сталкивался, на ум пришло только распределять фото по разным папкам на основе id пользователя, т.е. например для пользователей с id 1-50000 хранить фото в папке 1, для пользователей с id 50000-100 000 хранить фото в папке 2, для пользователей с id 100 000-150 000 хранить фото в папке 3 и т.д. А из скрипта можно получать к ним доступ так

...
if($id > 1 && $id =< 50000) {
$fotoph = "/1";
} else if ($id > 50000 && $id =< 100000) {
$fotoph = "/2";
} else if ($id > 100000 && $id =< 150000) {
$fotoph = "/3";
}
...

Но наверное это будет не самый удобный и лучший вариант...
Может быть есть лучше?
И ещё очень важный для меня вопрос, какое оптимальное количество фото лучше всего хранить в одной папке - 10 000, 50 000, 100 000 ???

Примечание:
Александр, спасибо за ответ, отдельный сервер я наверное немного позже арендую. Но вопрос остается открытым - пусть фото на отдельном сервере хранятся, как тогда организовать структуру хранения на отдельном сервере??? Если фото к примеру миллион - хранить их все в одной папке, хранить в 10 папках по 100 000 фото в каждой? В 50 папках по 20 000 фото в каждой или как?
Уточню - в движке НИГДЕ нет запроса на получение списка содержимого директории, т.е. функции наподобие glob, readdir нигде в движке к папкам с фото не применяются. Если, например, нужно получить все фото пользователя с id 43224 - скрипт обращается к БД с запросом select foto_path from user_fotos where id_user=43224 и получает 43224_mhv7gfFhb.jpg 43224_ci9ehzFvb.jpg и т.д.
Ответы:
вынести на отдельный сервер и загружать их оттуда
таким образом глюки сервера фотографий не коим образом не будут влиять на основной движок сайта
Очень просто хранить - так делается в большинстве движков галерей, которые я изучал. За оптимальное количество выбирается 1000 фотографий. Плюс все подпапки с файлами лежат по 100 штук в других подпапках и так далее. Структура хранилища выглядит следующим образом:
> Попытался открыть эту папку - winscp думал минут 15
не показатель ничего, вы ведь через сеть список файлов перекачиваете, да и отображение в gui. На что уходит время: на работу с ФС или на передачу данных вам по сети, или на перерисовку списка на вашем компе — неизвестно.


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.