ФорумПрограммированиеPHP для идиотов → Где лучше хранить картинки?

Где лучше хранить картинки?

  • gooddaytoday

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

    Spritz 15 февраля 2011 г. 7:01

    Не встречался до сих пор с такой дилемой: где лучше хранить картинки, если их 10 000+ и нужно чтоб быстро все было?

    1. Рассортировать по папкам на диске?
    2. Или записывать в БД?
  • TRIAL

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

    Spritz 15 февраля 2011 г. 7:09, спустя 8 минут 12 секунд

    Ссылки хранить в БД а сами картинки храни как тебе удобно.
    from TRIAL with LOVE
  • AlexB

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

    Spritz 15 февраля 2011 г. 7:24, спустя 14 минут 20 секунд


    Не встречался до сих пор с такой дилемой: где лучше хранить картинки, если их 10 000+ и нужно чтоб быстро все было?
    1. Рассортировать по папкам на диске?
    2. Или записывать в БД?
    Как правило, в 99% случаев, вариант 1 более удобен, быстрее и в работе, и в реализациии.
    Но окончательное решение можно принять только зная задачу целиком.
  • fgets

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

    Spritz 15 февраля 2011 г. 7:56, спустя 32 минуты 12 секунд

    И опять таки хочется наебнуть вариант фейсбука с его хранением всех картинок в одном файле, но надо написать демон прежде а потом выебываться. Чем я собственно щас и занимаюсь
  • AlexB

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

    Spritz 15 февраля 2011 г. 8:39, спустя 42 минуты 53 секунды


    И опять таки хочется наебнуть вариант фейсбука с его хранением всех картинок в одном файле, но надо написать демон прежде а потом выебываться. Чем я собственно щас и занимаюсь
    А нахуя, собственно?
  • fgets

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

    Spritz 15 февраля 2011 г. 10:15, спустя 1 час 35 минут 49 секунд



    И опять таки хочется наебнуть вариант фейсбука с его хранением всех картинок в одном файле, но надо написать демон прежде а потом выебываться. Чем я собственно щас и занимаюсь
    А нахуя, собственно?


    скорость чтения выше а нагрузка на файловую систему меньше
  • AlexB

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

    Spritz 15 февраля 2011 г. 10:26, спустя 11 минут 34 секунды


    скорость чтения выше а нагрузка на файловую систему меньше
    Так то оно так, но ты уверен, что именно это окажется узким местом, и если даже это так не проще ли вынести картинки на отдельный сервер с нжинксом?
    У нас свыше 6 миллионов просмотров в сутки, на каждой странице не один десяток картинок, но пока еще не возникла потребность в таких решения.
    Оно тебе точно надо? Или просто для научного интереса?
  • fgets

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

    Spritz 15 февраля 2011 г. 10:54, спустя 27 минут 20 секунд



    скорость чтения выше а нагрузка на файловую систему меньше
    Так то оно так, но ты уверен, что именно это окажется узким местом, и если даже это так не проще ли вынести картинки на отдельный сервер с нжинксом?
    У нас свыше 6 миллионов просмотров в сутки, на каждой странице не один десяток картинок, но пока еще не возникла потребность в таких решения.
    Оно тебе точно надо? Или просто для научного интереса?


    скорее второе
  • Hight

    Сообщения: 1489 Репутация: N Группа: Адекваты

    Spritz 16 февраля 2011 г. 9:59, спустя 23 часа 5 минут 50 секунд

    Все эти оптимизации, как у фейсбука и прочих, нужно делать тогда когда в этом есть жизненная необходимость. С самого начала это экономически не выгодно. Что проще - писать свой софт, этакая БД для картинок, или поставить пару серваков? Пара серваков обойдётся дешевле.

    А ради спортивного интереса у меня приятель свой сервер БД написал. Поржали и только.
  • artoodetoo

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

    Spritz 23 января 2012 г. 23:45, спустя 341 день 13 часов 45 минут

    Хз как фейс хранит картинки, теперь понятно как он их отдает: случилось сегодня

    Спустя 31 сек.
    Варниш - кеширующий прокси сервер
    ιιlllιlllι унц-унц
  • lolcat

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

    Spritz 24 января 2012 г. 3:39, спустя 3 часа 53 минуты 45 секунд


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

    Антипаттерн головного мозга: преждевременная оптимизация.

    Присоединяюсь к TRIAL.
  • Turos

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

    Spritz 24 января 2012 г. 11:12, спустя 7 часов 33 минуты 34 секунды

    В файловой системе, только дерево папок надо создавать чтобы в одной папке все не лежало, иначе тормозить будет когда много картинок
  • adwo

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

    Spritz 24 января 2012 г. 13:22, спустя 2 часа 10 минут

    amazon s3, ёп
  • AlexanderC

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

    Spritz 25 января 2012 г. 6:52, спустя 17 часов 29 минут 26 секунд

    хранить на диске, ссылки в бд. структуру папок можно так: 0001, 0002, 0003, …., 9999, в каждой папке создай ещё папки от AA до EZ(range), ну и в последних хранить файлики…
    Запись по одному файлу поочерёдно- 0001 -> АА потом 0001 -> AB потом … 0001 -> EZ , далее переходит к рут папке 0002 итдитп. при помощи простых алгоритмов можно свести к минимуму калижины(collisions)
    Спустя 43 сек.
    при паралельных записях
  • OlegSmirnov

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

    Spritz 20 февраля 2012 г. 8:43, спустя 26 дней 1 час 51 минуту

    структуру папок можно так: 0001, 0002, 0003, …., 9999, в каждой папке создай ещё папки от AA до EZ(range), ну и в последних хранить файлики…

    Я бы по-другому сделал. Например, если у нас интернет-магазин, то структура такая

    images/ID_товара/ID_фотографии

    В случае фотогаллереи как-то так:

    images/ID_альбома/ID_фотографии

    При такой структуре даже не нужно хранить путь к файлу картинки. Он элементарно строится просто по ID из б.д. Также исключается возможность коллизий. Сперва делаем запрос на вставку данных в б.д. (INSERT), получаем ID добавленной записи (AUTO_INCREMENT) и уже после сохраняем картинку в нужную папку (ID альбома/товара/пользователя и т.п.) с названием, соответствующим ID самой картинки.

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