Frage

Ich habe eine Webanwendung, die derzeit in JSP/Servlets entwickelt wird.
Die Anwendung ermöglicht Benutzern Hochladen Bilddateien für jedes Benutzerkonto.

Was ist der beste Weg, um die Bilder zu speichern?
Bitte betrachten Sie die folgenden Funktionen, die ich vor Ihrer Antwort gerne haben möchte.

  1. Ich benutze jetzt MySQL, aber es könnte die Möglichkeit geben, in eine andere Datenbank zu wechseln.

  2. Ich kann die Bilder als flache Dateien speichern, aber ich möchte die admin Konto, um eine Option zu haben, um Sicherung der vollständigen Datenbank und laden Sie es später neu. Idealerweise sollte das Backup/das Nachladen auch mit den Bildern funktionieren. (Auch wenn die Sicherung von einer anderen physischen Maschine durchgeführt wurde und das Nachladen von einer anderen Maschine aus erfolgt wurde)

  3. Die Verwendung von Blob/CLOB ist eine Option, die Problem 2 löst.
    Aber, Was ist, wenn meine Datenbank sehr groß wird??

War es hilfreich?

Lösung

Speichern Sie sie im Dateisystem. Es ist schneller und einfacher. Oft müssen Sie beim Zugriff auf ein Bild es trotzdem in einer Datei speichern, bevor Sie es verwenden können. Sie können die Bilder mit Tools von Drittanbietern untersuchen. Sie können den Datensatz im Dateinamen speichern, um zu verhindern, dass die Image/Record -Vereinigung jemals kaputt ist.

Viele andere teilen diese Meinung: http://forums.asp.net/p/1512925/3610536.aspx

Andere Tipps

In Ihrem Fall empfehle ich Ihnen dringend, eine zu haben blob Feld in Ihrer Datenbank und speichern Sie die Bilder darin. Hauptsächlich, weil dies ist der richtige Ort für sie. Machen Sie also ein Servlet, das das Bild des angegebenen Benutzers aus der Datenbank abruft. Zum Beispiel, /userimage?name=john.

Über Ihr Problem "Größe/Leistung":

  • Datenbanken wurden (unter anderem) zum Speichern und Austausch gemacht große Datenmengen.
    So, Sie sind die beste Option.

  • Selbst wenn Sie sie auf anderen Websites aufbewahren, werden sie dennoch freien Platz und Leistung reduzieren.

  • Wenn du Ja wirklich Sie möchten große Daten verwalten (> = 3 TB, nicht Ihr Fall), dann können Sie sie in einem Dateisystem speichern und die Dateinamen in der DB speichern. Für weitere Informationen schauen Sie sich an diese Frage.

Speichern Sie sie einfach in der DB ... Wenn Ihre Benutzerbasis "sehr groß wird", haben Sie Eimer mit Bargeld, um einen Balls-Out-Datenbankserver (oder sogar eine Farm von ihnen) zu kaufen, die die Last bewältigen kann, jetzt gewonnen. ' T du?

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