Php: Сохранить изображение в Mysql blob, хорошо или плохо?

этот вопрос меня смущает, поэтому я думал, что должен слушать экспертный голос!

лучше ли загружать изображения в папку и просто сохранять ссылку на mysql или лучше загружать img в поле blob mysql?

Большое спасибо

Ответ 1

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

Плюсы:

  • Все ваши данные хранятся в одном месте, если вы переносите свой веб-сайт/базу данных, изображения будут только там.
  • Легче сортировать/удалять/etc...
  • Поскольку вы должны обслуживать его с помощью PHP script, вы можете выполнять дополнительные функции, такие как безопасность, если требуется, или обработку изображений (очевидно, вы можете сделать это и с плоским файлом, но вы должны убедиться, что безопасность не подходит обойти, оставив изображения в общедоступном каталоге).

Минусы:

  • Его медленнее, чем обслуживать плоский файл с веб-сервера в качестве PHP script, нужно его восстановить, а MySQL нужно вернуть данные.
  • Ваша база данных станет очень большой, и не все веб-хосты слишком любезно относятся к этому.
  • Файловая система работает быстрее для хранения и извлечения файлов, так как именно для нее предназначена файловая система.

Ответ 2

Bad. Ваш веб-сервер выполняет гораздо более эффективную работу с заголовками истечения срока действия и напрямую загружает файлы из файловой системы. Пропускная способность будет намного выше, используя файловую систему. Это то, для чего оно предназначено, и использовать его.

Базы данных SQL предназначены для реляционных данных, а не для изображений. Вы просто загружаете свою базу данных без необходимости. Сохраните имя пути/изображения.

Ответ 3

Если ваше приложение велико, то вам нужно многократно отображать большое количество/размер изображений, тогда вы должны перейти на первый метод (сохраняя только путь к изображению в базе данных и фактические изображения в файловой системе). Это уменьшит время обработки, чтобы отображать изображения, кроме того, потребляет меньше ресурсов. Во-вторых, если вашему приложению требуется меньше изображений, вы можете хранить их непосредственно в базе данных. Таким образом становится проще брать резервные копии и приложение на другое ОС.