Хранение изображения в MySQL - PullRequest
       4

Хранение изображения в MySQL

2 голосов
/ 10 августа 2009

Как я могу сохранить и извлечь изображение в базу данных MySQL, используя VB.NET 2005?

Ответы [ 3 ]

3 голосов
/ 10 августа 2009
  1. Считайте это в строковую переменную.
  2. Сохраните его в поле BLOB.
  3. Не хранить данные изображения в базы данных, лучше практиковать просто хранить уникальные имя файла, которое указывает на фактический файл изображения, это поможет уменьшить раздувание БД и избавит вас от необходимости извлекать огромные записи.
2 голосов
/ 10 августа 2009

зависит от размеров изображения

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

Плюсы:

  1. Лучшие характеристики роста БД
  2. Проще делать инкрементные резервные копии
  3. Проще иметь многоуровневое хранилище (быстрое дорогое хранилище для часто используемых изображений, медленное хранилище для не так часто используемых)
  4. Возможно иметь произвольный доступ к части файла (не нужно читать всю вещь)

Минусы:

  1. Трудно сделать транзакции
  2. Отдельное место, которым нужно управлять
  3. Отдельные элементы управления доступом, которыми нужно управлять
  4. капли легче программировать

Если изображения находятся в диапазоне нескольких k, а у вас их ограниченное количество, просто используйте MemoryStream (сохраните в нем как для любого потока) и перенесите байты в поле большого двоичного объекта.

SQL Server предоставляет вам лучшее из обоих миров с типом поля файловой системы (экстернализует большой двоичный объект в файл, но в остальном обрабатывается так же, как большой двоичный объект)

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

  1. Размер
  2. Тип
  3. Если многостраничный (например, TIFF), количество страниц

Я написал о некоторых соображениях, касающихся изображений в БД, в моем блоге:

http://www.atalasoft.com/cs/blogs/loufranco/archive/2007/12/03/images-in-databases-part-i-what-to-store.aspx

http://www.atalasoft.com/cs/blogs/loufranco/archive/2007/12/04/images-in-databases-part-ii-web-images-are-random-access.aspx

http://www.atalasoft.com/cs/blogs/loufranco/archive/2009/04/28/document-storage-database-blobs-or-the-filesystem.aspx

1 голос
/ 10 августа 2009

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

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