Vor kurzem diskutierten ich und meine Kollegen darüber, wie man riesige Speichersysteme bauen könnte, die Milliarden Bilder speichern und schnell durchsuchen und herunterladen könnten.
So etwas wie ein Fickr, aber nicht für eine Online-Galerie. Das heißt, die meisten dieser Bilder werden niemals heruntergeladen.
Meine Kollegen schlagen vor, dass wir alle diese Dateien direkt in der Datenbank speichern sollten. Ich glaube wirklich, dass es keine gute Idee ist und ich denke, dass die Datenbank nicht dafür ausgelegt ist, eine große Anzahl von Binärdateien wiederherzustellen. Aber ich habe einen sehr starken Grund dafür, warum das keine guten Ideen sind.
Was denkst du darüber?
Wenn Sie mit binären Objekten arbeiten, folgen Sie einem dokumentenzentrierten Ansatz für die Architektur, und speichern Sie keine Dokumente wie PDFs und Bilder in der Datenbank. Sie müssen sie schließlich umstrukturieren, wenn Sie alle Arten von Performance-Problemen mit Ihrer Datenbank feststellen. Speichern Sie die Datei einfach im Dateisystem und haben Sie den Pfad in einer Tabelle Ihrer Datenbank. Es gibt auch eine physikalische Beschränkung für die Größe des Datentyps, den Sie zum Serialisieren und Speichern in der Datenbank verwenden. Speichern Sie es einfach im Dateisystem und greifen Sie darauf zu.
Wenn Sie wirklich über Milliarden von Bildern sprechen, würde ich sie im Dateisystem speichern, da das Abrufen schneller ist als das Serialisieren und Deinseralisieren der Bilder
Die obigen Antworten scheinen davon auszugehen, dass die Datenbank ein RDBMS ist. Wenn es sich bei Ihrer Datenbank um eine dokumentorientierte Datenbank mit Unterstützung für binäre Dokumente der von Ihnen erwarteten Größe handelt, kann es sinnvoll sein, sie in der Datenbank zu speichern.
Es ist keine gute Idee. Der Sinn einer Datenbank besteht darin, dass Sie komplexe Abfragen schnell auflösen können, um Textdaten abzurufen. Während Binärdaten in einer Datenbank gespeichert werden können, kann es Transaktionen verlangsamen. Dies gilt insbesondere dann, wenn sich die Datenbank auf einem anderen Server als die ausgeführte Anwendung befindet. Speichern Sie in der Datenbank Metadaten und den Speicherort / Dateinamen der Bilder. Bilder selbst sollten auf statischen Servern sein.
Tags und Links database