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

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

Лучше загрузить изображения в папку и просто сохранить ссылку на MySQL, или лучше загрузить себя в поле MySQL BLOB-объектов?

большое спасибо вам

3 ответа

Решение

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

Плюсы:

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

Минусы:

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

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

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

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

Другие вопросы по тегам