Может ли структура папок для пользовательских загрузок оказывать какое-либо влияние на производительность по мере роста сайта?
Например, я рассмотрел эту структуру для хранения фотографий / альбомов:
Public folder - Uploads -- Users --- User ID ---- Album ID - contains all photos in the album
Заранее спасибо!
Может ли структура папок для пользовательских загрузок оказывать какое-либо влияние на производительность по мере роста сайта?
Да, оно может. Если вы храните слишком много файлов в одном каталоге, это может замедлить работу. Созданная структура очень хороша.
Редактировать Может быть, мне нужно было поститься с помощью вышеприведенного ответа, и не хватает пояснений, поэтому ниже я расширяю его:
Если вы ожидаете иметь десятки тысяч изображений от пользователей, вы должны рассмотреть это решение:
Создайте таблицу в своей базе данных и поместите в нее информацию о каждой отдельной фотографии. Создайте имя файла фотографии из хэша идентификатора записи id md5.
Пример таблицы базы данных:
+ ------------------------------------------------- ---------------- + | id filename ext created_at user_id | + ------------------------------------------------- ---------------- + | 1 c4ca4238a0b923820dcc509a6f75849b jpg 1381127206 1 | | 2 c81e728d9d4c2f636f067f89cc14862c jpg 1381123406 2 | | .. .. .. .. | + ------------------------------------------------- ---------------- +
Теперь разделим хэш-метку md5 и создадим структуру каталогов из первого, допустим, 6 букв:
добавления / пользователей / фото/ c4 / са / 42 / c4ca4238a0b923820dcc509a6f75849b.jpg c8 / 1е / 72 / c81e728d9d4c2f636f067f89cc14862c.jpg
Плюсы:
Также убедитесь, что индексация каталогов включена в файловой системе (она включена по умолчанию для более новых систем).