Общие > Базы данных
MySQL и хранение графических элементов
MadDog:
Интересует такой вопрос. На сколько оправдано (скорость, занимаемый объем, удобство для пользователя и т.п.) хранение графических элементов, например, фотографий и рисунков в базе данных?
Возьмем для примера интернет магазин. Как лучше сделать: хранить фотографии в базе или скидывать их в каталог на сервере?
Некоторые плюсы и минусы для меня очевидны, но хотелось бы узнать и ваше мнение.
Меняздесьдавнонет:
конечно хранить надо на диске.
При хранении в базе.
скорость - естественно, падает.
объем - тот же. Правда, это если говорить о диске.
а вот оперативная память начинает совершенно на пустом месте тратиться.
удобство для пользователя. Естественно, ему удобнее, когда картинка называется benefon007.jpg, а не pic.php?id=2345&sid=234ERT56DFG5346
удобство для программиста. Меньше сущностей - меньше глюков.
В общем, если, конечно, охота запускать стразу десяток скриптов вместо одного при банальном показе списка товаров одной категории, то, конечно, дело хозяйское...
dymka:
я лично не рискую бинарники хранить в базе... база может упасть итп... да и накладных расходов на фетч больше...
ThE0ReTiC:
MadDog
Ни на сколько.
Если често - еще ни разу не сталкивался с НЕОБХОДИМОСТЬЮ хранить графику в базе.
Всегда хватает хранения ссылок на картинки...
rembo:
Позвольте поделиться своим опытом решения этой проблемы.
По моему мнению хранить ли картинки в базе ли, в каталогах ли не имеет никакого значения по отношению к производительности.
Спрашивал я у компетентных лиц этот вопрос и все хором утверждают что мол база грузится, скорость падает... а ни кто толком не объяснил с чем это конкретно связано.
Если СУБД и Веб-сервер вращаются на одном и той же машине то какая для ней (для машины) разница откуда считывать картинки и куда их потом совать.
С точки зрения процессора, что база что файловая система это всего навсего процессы которые требуют от него куски его времени, то есть что база заставит его читать кучу битов с определенного места, что файловая система заставит его делать то же самое, ему по барабану. Касательно собственно барабана :) (винчестера(ов)) дело обстоит не иначе.
То что действительно влияет на производительность СУБД так это неразумное индексование и количество полей, а то что в этих полях хранится не суть как важно, ведь все равно в самой таблице хранятся лишь заголовки картинок, и пока базе не "скажешь" что б она выбрала эти картинки она с ними делать ничего не станет .
Что касается распределенных систем, то решающую роль конечно же играет то как устроены каналы связи между частями этой системы.
А с точки зрения программирования ничего нет лучше чем хранить картинки в базе... Хотя о вкусах не спорят :)
Навигация
Перейти к полной версии