Вот подумалось, почему бы не обсудить это "явление" ? Хочется услышать плюсы и минусы данного подхода... Мне на ум приходят только минусы, однако с "моральной" стороны картинки это такой-же контент сайта как и к примеру тексты статей, однако я не видел движков пихающих в БД названия текстовых файлов со статьями Очень меня чё-то этот вопрос задел...
Нагружает базу + надо делать обработку HTTP заголовков, что-бы нормально кешировались браущером картинки, иначе если их много, будет фигово... А вообще в плане ресурсов конечно лучше чем тупо отдать средствами веб сервера ничего не придумали
Не особо сильно, один запрос на картинку. (причём запрос самый что не есть лёгкий) Ну это не сложно. А если в плане "не ресурсов" а именно "эстетики" имеет вообще данный "метод" право на жизнь ? (не все сайты имеют сотни тысяч посетителей, есть и просто хомячки)
Ну и зачем создателю «хомячка» лишние проблемы с отслеживанием последнего изменения еще и картинок? Лишний код, функциональность которого можно спокойно спихнуть на веб-сервер. Там же и анализ входящих заголовков, и E-Tag'и на них, и Last-Modified отдай Тексты статей - не самостоятельная единица, а часть конечного «файла». Картинка-же — это отдельный файл.
Vladson Изображения имеет смысл хранить в БД в двух случаях - когда перед отдачей нужно учитывать права доступа (например, вложения на форуме) и когда эти изображения постоянно тасуются - все время добавляются новые, меняются имеющиеся, удаляются старые. Что мне действительно не нравится - так это когда сама картинка хранится в виде файла, а дополнительная инфа о ней хранится в таблице, получается такой "тянитолкай" с соотношением 1:1 Имхо, надо выбирать или одно, или другое, но это чисто личное впечатление.
объем базы на виртуальном хостинге - метры, дальше повышают цены. И можно пример задачи, где частое обновление-изменение картинок? Права доступа решаются и так.
мы маленькие, но нас много! (с) сага о муравьях vasa_c, подозреваю, что он имеет ввиду метаинфу, которая выводится на странице рядом со ссылкой на картинку.
armadillo Ни разу не видел тарифного плана, где бы объем БД лимитировался сильнее, чем дисковое пространство. Обычно объем БД считается частью места на диске - и что самое смешное, при большом количестве небольших картинок БД может оказаться даже выгоднее.
Хранение мета-информации это нормально ИМХО. Данных там обычно не много и даже на очень больших таблицах поиск по индексу занимает очень мало времени. Такие таблицы к тому-же могут легко иметь формат FIXED, что хорошо сказываеться на скорости выборки. А вот с блобами похуже, потому что один может иметь размер 5 килобайт, другой 300-400 килобайт (приминительно к картинкам) - базе придёться ворочать большое кол-во информации, намного большее чем при выводе только метаинформации. Да и PHP не так уж эффективно оперирует большим кол-вом данных. Я делал довольно большую галлерею на основе базы данных. После 12к фотографий я послал главного программера с его заморочками и тихо-мирно переделал все на фаиловую систему, больше проблем не возникало, и база перестала тормозить. К кому же мета-информацию вам в любом случае придёться выводить отдельно от вывода картинки - 2 запроса на базу вместо одного.
Я всегда тоже придерживался мнения что это "велоспиед" просто стукнуло в бошку что дофига народу спрашивает как хранить картинки в базе, а вот чем они руководствуются я понять не особо могу... Не так всё сложно, главное иметь под рукой RFC 2068 Вот это как раз точно такой ответ какой я ждал, хотя нового почти ничего не узнал. Т.е для картинок не особо подходит, а скорее для файлов "для скачивания в ограниченном кругу людей" (за одно и проблема нагрузки решается)
Vladson Да с правами доступа решаеться всё просто - mod_rewrite + php скрипт, проверяющий а может ли юзер скачать данный фаил. Всё просто как 2 + 2. Физически хранить в базе фаилы и картинки - бред. К тому же как вы собираетесь делать дампы базы? Они у вас будут гигабайтными и востановление тоже будет оочень долго делаться... Так что, ИМХО, метод для извращенцев, садистов и просто тех, у кого дурь в голове. Не выбить дурь советами, значит со временем выбъеться, когда столкнёться с проблемами на практике.