Я могу вставить изображение в Таблицу базы данных MySQL?

существует ли способ вставить рисунки (не URL, рис.) в таблицу MYSQL, сделанную с phpmyadmin? и если существует, когда я хочу получить то изображение и вставить его в страницу, что я должен сделать?:)

7
задан kasrsf 18 May 2010 в 14:32
поделиться

3 ответа

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

Несколько причин, почему я не могу себе представить:

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

  2. Сохранение данных в виде больших двоичных объектов может вызвать проблемы с производительностью, если у вас есть ленивый код, использующий select * .

  3. Обслуживание изображений из файловой системы будет быстрее, чем их обслуживание из базы данных, и снизит нагрузку на сервер базы данных.

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

8
ответ дан 7 December 2019 в 01:17
поделиться

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

Вот некоторые плюсы и минусы хранения изображений в базе данных.

Преимущества:

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

Недостатки:

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

Лично я всегда обнаруживал, что преимущества перевешивают недостатки, и всегда имел изображения (вместе с mime-типами) в базе данных.

Связанные вопросы и ресурсы:

2
ответ дан 7 December 2019 в 01:17
поделиться

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

В противном случае храните содержимое файла изображения в колонке BLOB, а затем выведите в HTML.

image.php должен найти в базе данных изображение с ID 1234, получить содержимое этой BLOB-колонки и вывести его после передачи правильного HTTP-заголовка, например header('Content-type: image/gif');

Но серьезно. Просто сохраните файл изображения. Это гораздо менее хлопотно, обещаю.

0
ответ дан 7 December 2019 в 01:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: