Frage

Kann mir jemand einen Rat geben, wie man eine Bilddatei in DB in C#speichert? Ich werde viele Bilder speichern. Was ist der beste Weg, um den Raum zu reduzieren, den er benötigt? Ich verwende derzeit das VarBinary (MAX) -Fiele in DB.

Vielen Dank!

War es hilfreich?

Lösung

Wenn Sie die tatsächliche Datei in SQL speichern müssen, stellen Sie sicher, dass Sie einige Einschränkungen für die Größe des Bildes einlegen und sicherstellen, dass Sie die Datenbankgrößen ordnungsgemäß planen - wie viele Bilder und wie groß sind Sie?

Wenn Sie es in SQL speichern müssen, ist es meine Vorlieben, es automatisch in einer eigenen SQL -Datenbank zu sitzen. Auf diese Weise beeinflusst jede Leistungsprobleme, auf die ich mit diesen Bildern stoße, den Rest meiner Datenbank nicht.

Wenn Sie die Bilder nicht in einer SQL -Datenbank speichern müssen, dann wird dies nur dazu aufgerufen, mit einem Azure -Blob -Speicher zu erfolgen. Schauen Sie sich es an - es gibt Ihnen das, was Sie in einem sehr effizienten System wollen.

Wenn Sie Azure nicht verwenden können, sollten Sie eine Klasse zusammenstellen, in der das Lesen/Schreiben/Suchen von Bildern in ein Dateisystem behandelt wird. Das Speichern im Dateisystem (ordnungsgemäß) funktioniert viel besser als das Speichern von SQL.

Andere Tipps

Das wäre schön. Wenn diese Bilder jedoch so groß sind und Ihr DBA Oyu möglicherweise nicht mehr mag, wenn Sie sie dort einsetzen, können Sie sie irgendwo auf eine Fahrt platzieren und den Ort im DB speichern.

Ich denke, es gibt viele Möglichkeiten, wie Sie damit umgehen können. Wiegen Sie einfach Ihre Vor- und Nachteile.

Ich habe dir nur eine Alternative gegeben.

Keine gute Idee, Bilder in der Datenbank zu speichern. Sie können die URLs auf die Bilder speichern.

Welches Format aus dem Bild und welche Datenbanktechnologie verwenden Sie?

Eine Möglichkeit besteht darin, die Bilder in ein binäres Array umzuwandeln und diese in Ihre Datenbank zu bringen. Ich habe einen schönen Code gefunden, wie man dies bei CodeProject durchführen kann:

http://www.codeprroject.com/kb/aspnet/imageIndatabase.aspx

Wie Magnus sagte, werden FileStreams nicht auf den Seiten eines DB gespeichert, sodass dies die Leistung nicht beeinträchtigt.

Das Speichern von Dateien im DB bedeutet jedoch, dass Ihre DB -Backups viel größer werden.

Jemand anderes erwähnte, nur die URLs zu speichern. Dies ist auch eine großartige Idee und wahrscheinlich die am meisten pro Formant für ein einfaches Setup.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top