2010-05-02 4 views
2

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

По-вашему, это очень неправильное решение? Должен ли я перестроить весь сайт?

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

+2

http://www.phpriot.com/articles/images-in-mysql/2 <- Вы решили – Gazler

+0

@Gazler Следующая ссылка не работает. Его показ 404 в конце. –

ответ

6

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

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

3

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

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

2

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

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

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

1

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

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

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

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

2

Просто потому, что это можно сделать, это не значит, что это должно быть.

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

Смежные вопросы