Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Was ist der beste Weg, Benutzerbilder mit PHP und MySQL zu speichern?

"Am besten" hängt davon ab, was Ihr Ziel ist.

Die zwei Hauptmethoden zum Speichern von vom Benutzer hochgeladenen Bildern bestehen darin, entweder den binären Inhalt als BLOB in die Datenbank zu stellen oder die Bilder irgendwo auf dem Laufwerk zu speichern und einen Eintrag in die Datenbank zu schreiben, der angibt, welches Bild wohin gehört.

Das Platzieren der Bilder in der Datenbank hat den Vorteil, dass keinerlei Dateisystemberechtigungen auf dem Webserver erforderlich sind, und jegliche Art von Synchronisierungsproblemen werden beseitigt, wenn Sie die Site von mehreren Webservern aus bedienen. Mit der Zeit wird Ihre Datenbank jedoch riesig, und wenn Sie Ihre Tabellen nicht richtig entwerfen, kann dies Ihre Leistung und Skalierbarkeit absolut beeinträchtigen.

Das Speichern der Bilder als Datei im Dateisystem hat den zusätzlichen Vorteil, dass der Abruf extrem schnell und effizient ist, da Webserver sehr gut darin sind, statische Dateien bereitzustellen.

Bearbeitet, um hinzuzufügen

Wenn Sie sich entscheiden, Dateiinhalte in der Datenbank zu speichern, legen Sie sie auf keinen Fall in eine Tabelle, auf die schnell zugegriffen werden muss. Wenn Sie beispielsweise eine „Benutzer“-Tabelle haben, die bei fast jedem Seitenaufruf durchsucht wird, dann ist diese Tabelle nicht der Ort, an dem Sie Ihre Dateiinhalte ablegen können. Erstellen Sie stattdessen eine separate „images“- oder „files“-Tabelle, die die Datei und zugehörige Metainformationen enthält.

Wenn Sie viele Bytes pro Zeile in eine Tabelle einfügen, wird die Arbeit mit dieser Tabelle sehr langsam. Sie wollen so etwas nicht in Tabellen, die stark genutzt werden.