Вопрос

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

Спасибо!

Это было полезно?

Решение

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

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

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

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

Другие советы

Это было бы хорошо. Однако, если эти изображения настолько большие, а ваш DBA может больше не любить OYU за то, что он поместил их туда, вы можете поместить их куда -нибудь и хранить место в DB.

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

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

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

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

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

http://www.codeproject.com/kb/aspnet/imageindatabase.aspx

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top