C #: сохранение изображения в БД - PullRequest
0 голосов
/ 27 апреля 2011

Может кто-нибудь дать мне несколько советов о том, как сохранить файл изображения в БД в C #?Я буду сохранять много изображений, так как лучше всего уменьшить пространство, в котором оно будет нуждаться?В настоящее время я использую поле varbinary (max) в БД.

Спасибо!

Ответы [ 5 ]

3 голосов
/ 27 апреля 2011

Если вы ДОЛЖНЫ хранить фактический файл в SQL, убедитесь, что вы наложили некоторые ограничения на размер изображения и правильно спланировали размер базы данных - сколько изображений и какого размера вы ожидаете?

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

СЕЙЧАС, если вам не нужно хранить изображения в базе данных SQL, то я думаю, что это просто вызовпокончить с хранилищем BLOB-объектов Azure.Посмотрите на это - это даст вам то, что вы хотите в очень эффективной системе.

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

1 голос
/ 27 апреля 2011

Не очень хорошая идея хранить изображения в базе данных.Вы можете хранить ссылки на изображения.

1 голос
/ 27 апреля 2011

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

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

Я только что дал вам одну альтернативу.

0 голосов
/ 27 апреля 2011

Как сказал Магнус, FileStreams не хранятся на страницах БД, поэтому не влияют на производительность.

Хотя хранение файлов в БД означает, что резервные копии БД станут НАМНОГО больше.

Кто-то еще упомянул хранение только URL-адресов. Это также отличная идея и, вероятно, наиболее важная для простой установки.

0 голосов
/ 27 апреля 2011

Какой формат изображения и какую технологию базы данных вы используете?

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

http://www.codeproject.com/KB/aspnet/ImageInDatabase.aspx

...