powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как лучше распределять файлы по каталогам?
5 сообщений из 5, страница 1 из 1
Как лучше распределять файлы по каталогам?
    #38027672
capscom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
День добрый.

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

Есть таблица Files(id, file, created)

1. Вариант

md5_file($file)

И на выходе получаем путь вида 469/2f8/44a/2f5/8922235872097303f185.jpg, который и сохраняем в поле file, таблицы Files.


2. Вариант

Сохраняем в таблицу Files запись, получаем ее id, и вычисляем путь до файла

Код: php
1.
2.
$pathID = str_pad($id, 20, '0', STR_PAD_LEFT);
echo $path = '/' . implode(DIRECTORY_SEPARATOR, str_split($pathID , 2));



На выходе получаем /00/00/00/00/00/00/01/66/57/65/1665765.jpg

Апдейтим запись поле file записи, в таблице Files.

В первом варианте проблемы с накладными расходами по производительности на md5 и коллизии (которые в принципе можно избежать, добавив к пути дату и т.д.)

Во втором варианте напрягает 2 запроса, ведь нужно создать запись, чтобы получить ее id. Но при этом нет проблем с коллизиями, и пошустрее в производительности.


Подскажите, пожалуйста, И какой из вариантов предпочесть, в случае когда статику придется раскидывать по серверам? Сейчас эта проблема не актуальна, но очень не хотелось бы нажить геморой на раннем этапе.
...
Рейтинг: 0 / 0
Как лучше распределять файлы по каталогам?
    #38027714
SergSW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
capscom,

capscommd5_file($file)

capscomВ первом варианте проблемы с накладными расходами по производительности на md5

А Вы md5 от чего считать планируете?
Если от имени файла, то быстро генериться будет.
Да и судя по постановке вопроса у Вас скорость записи не критична.
...
Рейтинг: 0 / 0
Как лучше распределять файлы по каталогам?
    #38027723
capscom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SergSW,

Планировал md5 от содержимого файла. И подход засмущал, в тот момент когда файлы добавляются массово, есть существенные накладные расходы, связанные с производительностью.
Но больше пугает перспектива ошибиться в выборе подхода, ведь в дальнейшем может понадобиться раскидать файлы по разным сервакам. И не хотелось бы сейчас изобретать велосипед, а выбрать классическое решение.
...
Рейтинг: 0 / 0
Как лучше распределять файлы по каталогам?
    #38027726
SergSW
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
capscom,

capscomПланировал md5 от содержимого файла.

От содержимого не стоит. Долго и какой в этом смысл?
ИМХО я бы брал хеш имени с timestamp. Считаться будет быстро и от БД не зависит. Только ориг имя я-бы сохранил. Для картинок не особо критично, а вот для д.р. типов может быть не лишним.
...
Рейтинг: 0 / 0
Как лучше распределять файлы по каталогам?
    #38028938
capscom
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SergSW,
Спасибо большое, так тогда и сделаю.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / Как лучше распределять файлы по каталогам?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]