11 Stimme

Bilder in MySQL-Datenbank oder auf dem Webspace speichern - Vorteile und Nachteile

Frage von Gast | 03.05.2015 um 12:14

Ich bin gerade dabei mir eine ganz neue Homepage zu erstellen, Zeit also alte Gewohnheiten über Bord zu werfen.

Eine dieser alten Gewohnheiten war es, Bilder ausschließlich auf dem Webspace beziehungsweise dem Dateisystem des Servers zu speichern und nicht in einer Datenbank.

Nun ist es ja möglich, Bilder mit BLOB auch direkt in eine MySQL-Datenbank zu speichern und daraus abzurufen. Sollte ich das tun? Welche Vorteile und Nachteile hätte das? Was sagt die Performance? Oder ist das Blödsinn und ich sollte es besser lassen?

AntwortenPositivNegativ
2Beste Antwort2 Stimmen

Generell würde ich dir nicht empfehlen, Bilder in einer Datenbank zu speichern. Stattdessen würde ich immer das Dateisystem vorziehen.

Natürlich kommt es trotzdem immer auf den Einzelfall an und es gibt sicherlich Situationen, in denen auch Argumente für die Datenbank sprechen. Hier sind einige Erwägungen:

  • Performance: Wenn die Datenbank sowieso schon durch komplizierte Abfragen belastet ist, kann man hier Performance sparen und Schnelligkeit gewinnen, indem man die Datenbank nicht noch zusätzlich Bilder ausliefern lässt. Die Dateisysteme sind außerdem optimiert auf schnellen Dateizugriff, dieser Vorteil würde bei der Datenbank wegfallen.
  • Webspace-Speicher ist billiger als Datenbank-Speicher: Viele Anbieter begrenzen die Größe von Datenbanken, während der mögliche Webspace immer größer wird. Das wäre es Blödsinn zusätzliche Daten in die Datenbank zu schreiben, die man genauso auf dem Webspace speichern könnte.
  • Programmierung: Sowohl die Programmierung von PHP als auch HTML ist einfacher, wenn man die Bilder vom Dateisystem holt und nicht noch zusätzlichen Code braucht, um das Bild aus der Datenbank zu lesen.
  • Stil: Datenbanken sollten klein bleiben und nur strukturierte Daten enthalten, keine Binärdaten.

Der einzige wirkliche Vorteil für die Datenbank wäre, dass die Daten zusammenbleiben (also zum Beispiel Profilfotos und Profildaten). Dies ist sowohl bei der Suche als auch beim Austausch und Backup der Daten von Vorteil.

Trennt man diese beiden Dinge, benötigt man in der Datenbank eine entsprechende Verknüpfung (zum Beispiel eine Spalte mit dem Dateinamen oder man benennt die Bilder nach dem Primary Key der DB). Problematisch wird das zum Beispiel immer dann, wenn man einen dieser beiden Teile umbenennt oder ändert. Dieses Problem hätte man nicht, wenn man die Daten in der Datenbank speichern.
04.05.2015 um 15:51

AntwortenPositiv Negativ
Antworten

Ähnliche Themen

Wichtiger Hinweis

Bitte beachten Sie: Die Beiträge auf askingbox.de sind Beiträge von Nutzern und sollen keine professionelle Beratung ersetzen. Sie werden nicht von Unabhängigen geprüft und spiegeln nicht zwingend die Meinung von askingbox.de wieder. Mehr erfahren.

Jetzt mitmachen

Stellen Sie Ihre eigene Frage oder schreiben Sie Ihren eigenen Artikel auf askingbox.de. So gehts.