Мой клиент создал скрипт в php + mysql, который сохраняет изображения непосредственно в базе данных, и у каждого изображения есть URL-адрес: www.example.com/image.php?id=421
По-вашему, это очень неправильное решение? Должен ли я перестроить весь сайт?
В базе данных около 1000 посещений в день и около 600 изображений.
Файлы изображений – это файлы, если только в них нет веских оснований для их хранения, место, к которому они принадлежат, – это файловая система, где вы получаете преимущества, такие как простое резервное копирование и репликация, распределенные между несколькими компьютерами, непосредственно обслуживаемые веб-сервером, и все last-modified-date и etag, поддерживаемые веб-сервером для достижения лучшей производительности и т. д.
если ожидается, что число изображений будет расти, и ожидается, что в предстоящей версии будут созданы разные размеры одного изображения (например, миниатюрные изображения и т. д.), рекомендуется план переноса изображений из db в файловую систему.
Есть ли веская причина для их хранения в БД? Для этого могут быть некоторые веские причины. Я предполагаю, что это изображения клиента, а не изображения, необходимые для отображения самого сайта (например, фоновые изображения, вещи внутри тегов img).
Что касается перестройки сайта. Вероятно, это улучшит производительность, но при 1000 ударов в день это может не стоить того времени, которое потребуется. предполагая, что производительность сайта была приемлемой, и она не понесла дополнительные хостинговые сборы и т. д. Я был бы склонен оставить его, пока я не перепроектирую сайт.
Если вы прочтете ссылку @ Gazler от комментария, это действительно сводится к нескольким вопросам:
если вы ответили в ответах в скобках, тогда может быть полезно, чтобы ваш сайт удалял изображения из базы данных, иначе вы можете оставить его как есть и сэкономить время и / или нервы
Просто потому, что это можно сделать, это не значит, что это должно быть.
Я всегда храню метаданные об изображениях (имя файла, местоположение, другие атрибуты) в базе данных и храня внешние изображения в файловой системе. Очень мало пользы, imo, от фактического хранения изображений в базе данных SQL. Когда они там, они очень неудобны в использовании.
Есть хорошие и плохие моменты. И это зависит от того, кто вы. около 5 лет назад стало все ярость, чтобы поместить все изображения в базу данных.
Но с большими размерами пространства на сервере сегодня это не значит экономить место.
Отрицательным будет то, что вам всегда нужно понимать программирование на стороне сервера для использования изображений. Если это развитие будет передано другому человеку, это может оказаться проблематичным.
Насколько я могу судить, если он работает, он работает, и я не вижу проблем с производительностью – кажется, очень быстро.