Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Hochgeladene Bilder speichern:Soll es auf dem Server oder in der Datenbank gespeichert werden?

Ja, Sie können BLOBs für Binärdaten in Oracle verwenden. (Und viele andere Datenbanken.) Wir verwenden sie hier, um PDF-Dateien zu speichern.

Ich habe gesehen, dass es so oder so gemacht wurde. Speichern Sie die Bilder in der Datenbank oder speichern Sie die Bilder im Dateisystem und speichern Sie dann den Dateinamen in der Datenbank.

Vorteile der Speicherung in der Datenbank

In der Datenbank ist alles richtig. Sie ziehen eine Schallplatte heraus, das zugehörige Bild ist gleich dabei.

Sie erhalten Datenintegrität zwischen der Datei und den zugehörigen Daten (setzt natürlich ein gutes Schemadesign voraus.)

Eine logische Operation, um Daten und Bilder zu erhalten.

Ich finde es schwieriger und teurer, eine Datenbank so zu skalieren, dass sie viele Binärdaten enthält, als die Dateisystemalternative.

Nachteile beim Speichern in der Datenbank

Nicht alle Tools erleichtern das Durchsuchen der Bilder.

Auf die Bilder aus dem Internet kann nicht einfach zugegriffen werden.

Je nach Dateigröße und -menge können Sie in einigen Ihrer Tabellen viele Rohdaten erhalten.

Das Laden und Speichern von Blobdaten ist nicht immer einfach. (Ich habe zum Beispiel kürzlich einen benutzerdefinierten Datentyp für Hibernate geschrieben, um unsere Blob-PDFs zu verarbeiten.)

Vorteile des Dateisystems

Wahrscheinlich effizienter zum Lesen und Schreiben der Dateien.

Wenn Sie das Bild im Web bereitstellen möchten, können Sie dies direkt über das Dateisystem tun.

Einfacheres Durchsuchen von Bildern während des Debuggens und viele kostenlose Tools dafür.

Ich glaube, dass es einfacher ist, eine Anwendung zu skalieren, wenn Blobs in das Dateisystem eingefügt werden.

Nachteile des Dateisystems

Datenintegritäts-/Konsistenzprobleme. Ändern Sie etwas an der Dateistruktur, und Sie haben einen weiteren Schritt in der Datenbank zu erledigen.

Es ist eine andere Sache, ein Backup zu erstellen.

Mehrere logische Operationen (Lesen aus der Datenbank, Lesen aus dem Dateisystem), um Bilder und Daten zu erhalten.