ФорумПрограммированиеPHP для идиотов → Принцип обработки и хранения изображений в промышленных масштабах

Принцип обработки и хранения изображений в промышленных масштабах

  • TRIAL

    Сообщения: 988 Репутация: N Группа: Джедаи

    Spritz 16 мая 2011 г. 8:27

    Посоветуйте как и в каком виде хранить изображения на сайте.
    Допустим есть пользователи и они создают альбомы, в больших кол-вах. Сначала думал всё это дело сваливать в одну папку, но потом подумал если там будет 10 000 файлов то наверное это будет не слишком хорошо. Что уже говорить когда в одной папке накопится 100 000 и более файлов.
    Соответственно первый вопрос: сколько в одной папке должно быть файлов для нормальной и быстрой их обработки?
    Второй вопрос: превью фоток лучше создавать налету или заранее делать например 3 изображения нужного размера и выводить непосредственно их.
    Щас на локалке у меня выводится порядка 10 превьюшек и это занимает 2-3 секунды. В дальнейшем более 15-20 картинок на страницу выводить не планирую.

    PS. Знаю что тема не нова и тут уже поднималась причем не так давно, но мне честно влом искать и гуглить. Да и пыхе я как-то больше доверяю, как никак проверена временем :)
    from TRIAL with LOVE
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 16 мая 2011 г. 8:41, спустя 13 минут 21 секунду

    из опыта могу сказать - 2 млн файлов в одной папке пагубно влияют на жесткий диск и систему в целом :-)
    Сапожник без сапог
  • kostyl

    Сообщения: 5203 Репутация: N Группа: Джедаи

    Spritz 16 мая 2011 г. 10:14, спустя 1 час 33 минуты 22 секунды

    можно создавать превью не сразу а по первому требованию…
  • artoodetoo

    Сообщения: 5139 Репутация: N Группа: в ухо

    Spritz 16 мая 2011 г. 11:41, спустя 1 час 27 минут 4 секунды

    лично я считаю оптимальным создавать файл превью по требованию. но знаю что на flickr они создаются после загрузки, а фликр самый жирный сервер фотографий в мире. они могут выделить на эту работу отдельный пул серверов.
    надо различать два подхода - нормальный и масштабируемый. они могут быть сильно разными.
    ιιlllιlllι унц-унц
  • TRIAL

    Сообщения: 988 Репутация: N Группа: Джедаи

    Spritz 17 мая 2011 г. 3:11, спустя 15 часов 29 минут 59 секунд

    Ладно, думаю превью пока буду на лету через пхп делать, а вот с хранением надо что-то решить. Сколько все-таки оптимально картинок хранить в одной папке? Я почему то думал в районе 1000, а у дуда вон 2 млн :)
    from TRIAL with LOVE
  • Faster

    Сообщения: 1159 Репутация: N Группа: Кто попало

    Spritz 17 мая 2011 г. 3:36, спустя 24 минуты 24 секунды

    2к файлов
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 17 мая 2011 г. 3:56, спустя 20 минут 48 секунд

    Faster, а каким образом если не секрет ты собрался отмерять эти 2 тыщи файлов?
  • master

    Сообщения: 3236 Репутация: N Группа: Джедаи

    Spritz 17 мая 2011 г. 7:34, спустя 3 часа 37 минут 30 секунд

    по датам заливки разбивай
    год/
    месяц/
    число/
    файло1.жпг
    файло2.жпг
    не всё полезно, что в swap полезло
  • TRIAL

    Сообщения: 988 Репутация: N Группа: Джедаи

    Spritz 17 мая 2011 г. 7:40, спустя 5 минут 52 секунды

    Я думал по id разбивать. Вот например 2к набралось и сразу в следующую папочку пошло заливаться. По дате папки плодить не хочется. Смысл делать папку если в ней будет 10 файлов лежать.
    Кстати почему именно 2к файлов на папку? Проверенно опытным путем или просто от балды? 6)
    from TRIAL with LOVE
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 17 мая 2011 г. 7:45, спустя 5 минут 8 секунд

    конечно блядь од балды. Вот меня так улыбают такие кадры, которые вечно что-то пизданул абы было. В стиле fgets'а, хотя это наверно его клон
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 17 мая 2011 г. 7:48, спустя 2 минуты 54 секунды

    Абырвалг, не пизди на триала, он даже сапа застал! а ты! симфоеб плюшевый
    Сапожник без сапог
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 17 мая 2011 г. 7:50, спустя 1 минуту 54 секунды

    Так я на триала и не пизжу. Я отвечаю на его вопрос
    Кстати почему именно 2к файлов на папку? Проверенно опытным путем или просто от балды? 6)


    вот на конфе был осенью, там такой подход был предложен:
    1) добиваем айдишник фотки ведущими нулями до 9 символов (sprintf) 012345678
    2) делим по 3 символа 012 345 678
    3) перетасовываем 678/345/012/

    таким образом у нас все будет ч0тко и равномерно. И не нужно мерять никакие 2 тыщи файлов
  • phpdude

    Сообщения: 26624 Репутация: N Группа: в ухо

    Spritz 17 мая 2011 г. 7:54, спустя 4 минуты 29 секунд

    Абырвалг, аа ты про фастера)))

    да похуй как разбивать … я тут про спринтф видел ржаку :D

    жаль навреное не найду щас …
    Спустя 68 сек.
    if ($work["user"] < 10)
    $fnum = '000'.$work["user"];
    if ($work["user"] >=10 && $work["user"] < 100)
    $fnum = '00'.$work["user"];
    if ($work["user"] >=100 && $work["user"] < 1000)
    $fnum = '0'.$work["user"];


    ctrl+f спас :D:D
    Спустя 16 сек.
    толпоеб простигосподи ….
    Сапожник без сапог
  • TRIAL

    Сообщения: 988 Репутация: N Группа: Джедаи

    Spritz 17 мая 2011 г. 8:01, спустя 6 минут 44 секунды

    Я чтоб картинки фиксированный размер имени файла имели сделал проще - md5(id). В итоге все уникальные имена в 32 символа. Влом замарачиваться и чем то их добивать )))
    from TRIAL with LOVE
  • Абырвалг

    Сообщения: 6476 Репутация: N Группа: Джедаи

    Spritz 17 мая 2011 г. 8:02, спустя 49 секунд

    у меня чувачек работает, по 2 head'а делает на странице)

Пожалуйста, авторизуйтесь, чтобы написать комментарий!