Сохранение изображений в базе данных mysql - PullRequest
2 голосов
/ 02 мая 2010

Мой клиент создал скрипт на php + mysql, который сохраняет изображения непосредственно в базе данных, и у каждого изображения есть такой URL: www.example.com/image.php?id=421

По вашему мнению, это очень неправильное решение? Стоит ли перестраивать весь сайт?

В базе данных около 1000 посещений в день и около 600 изображений.

Ответы [ 5 ]

6 голосов
/ 02 мая 2010

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

, если ожидается, что число изображений будет расти, и ожидается, что в следующем выпуске будут созданы разные размеры одного изображения (например, миниатюрные изображения и т. Д.), Настоятельно рекомендуется план переноса изображений из БД в файловую систему.

3 голосов
/ 02 мая 2010

Есть ли веские основания для их хранения в БД? Для этого могут быть веские причины. Я предполагаю, что это клиентские изображения, а не изображения, необходимые для отображения самого сайта (то есть фоновые изображения, вещи внутри тегов img).

Что касается перестройки сайта. Это, вероятно, улучшит производительность, но при 1000 попаданиях в день это может не стоить того времени, которое потребуется если предположить, что производительность сайта была приемлемой и не требовала дополнительных затрат на хостинг и т.д.

2 голосов
/ 02 мая 2010

То, что это можно сделать, не означает, что так должно быть.

Я всегда храню метаданные об изображениях (имя файла, местоположение, другие атрибуты) в базе данных и храню изображения извне в файловой системе. По моему мнению, очень мало пользы от фактического хранения изображений в базе данных SQL. Как только они там, их очень неудобно использовать.

2 голосов
/ 02 мая 2010

Если вы прочитаете ссылку @ Gazler из комментария, она действительно сводится к нескольким вопросам:

  • есть ли проблемы с производительностью? [Y]
  • Вы храните дополнительную информацию или просто изображения? [Просто изображения]
  • планируете ли вы (или надеетесь) привлечь в будущем гораздо больше пользователей? [Y]
  • Вы ограничены в размере вашего БД? [Y]

если вы ответили с помощью ответов в скобках, то для вашего веб-сайта было бы полезно вывести изображения из базы данных, в противном случае вы можете оставить все как есть и сэкономить себе время и / или нервы

1 голос
/ 02 мая 2010

Есть хорошие и плохие моменты. И это зависит от того, кто вы есть. около 5 лет назад стало все моднее помещать все изображения в базу данных.

Но сегодня, когда размеры серверного пространства больше, это вовсе не экономия места.

Минусом будет то, что вам всегда потребуется понимание программирования на стороне сервера для использования изображений. Если это развитие может быть передано другому человеку, это может оказаться проблематичным.

Насколько я вижу, если это работает, это работает, и я не вижу проблем с производительностью - это кажется очень быстрым.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...