2012-04-05 8 views
2

Ich werde in naher Zukunft eine große Website nähern, die Hunderte, vielleicht Tausende von Videos hochgeladen und gespeichert werden müssen. Außerdem müssen viele Bilder hochgeladen werden, aber nicht annähernd so viel, und sie werden klein sein. Bisher habe ich immer PHP und MySQL wie folgt verwendet:php Video-und Foto-Upload: Speichern in der Datenbank vs. hochladen

  • Laden der Dateiname in der Datenbank
  • Referenz ein Ordner + Dateiname in der Datenbank ein Bild hochladen Datei
  • anzuzeigen

Ich habe jedoch einige Nachforschungen über einige BLOB gemacht, die Bilder und Dateien in der Datenbank speichern und unsicher sind, welcher Weg für dieses potentiell große Projekt am besten ist. Sollte ich den Upload fortsetzen, oder ist es effizienter, den BLOB-Typ in mysql zu verwenden? Ich befürchte, dass es durch die Speicherung vieler Videos und Bilder in einer Datenbank zu viele Daten oder zu langsam werden könnte, aber ich könnte völlig falsch liegen. Bitte lassen Sie mich alle Ihre Vorschläge wissen.

+2

Für jedes Video, das Sie in einem BLOB speichern, wird ein Kätzchen zugrunde gehen !! –

+0

Sie haben dort einen sehr gültigen Punkt! –

Antwort

3

Ok, eine Datei vom Server dient, so dass die beiden großen Bereiche sind: Sicherung und

Backup-

auf die Abhängigkeit ändern DB-Engine, die Sie auswählen, Sicherungen erfordern Sperren/Dumping/Entsperren. Je größer die Datenbank, desto länger ist das Schloss. Sie können einige Funktionen (Master/Slave) verwenden, um HotSyncing zu ermöglichen (Backups ohne Sperren), aber es besteht das Risiko, dass das Backup das Dataset nicht vollständig abdeckt und der Maßstab der Datenbank immer noch ein Faktor ist. Wenn große Dateien einfach Dateien sind (statt DB BLOBS), ist es nur eine Frage der Erstellung einer Backup-Strategie für das Dateisystem, und da sie wahrscheinlich statisch sind, bedeutet dies nur, dass mehrere Kopien gespeichert sind (dies könnte sogar per Entwurf beim Upload sein) - auf Server A und Server B speichern).

ändern

Erwarten Sie Ihr System gleich bleiben? Es klingt, als hätten Sie Probleme mit der Skalierung. Könnten Sie die Datenbank auf einen anderen Server verschieben, den Dateispeicher auf einen anderen Server oder SAN (oder S3 usw.), wenn Ihr System wächst? Wenn Sie alles in der DB gesperrt haben, müssen Sie sich auf DB-Lösungen verlassen, um mit der anwachsenden Größe fertig zu werden (große teure Server, Master/Slaves usw.). Natürlich könnten Sie die Dateien in einer DB speichern (weniger Backup-Anforderungen, nicht mit Ihrer Daten-DB herumspielen) und andere Daten in einer anderen ... aber ein Dateisystem ist eine Art DB.

So

So für Backups und Skalierung BLOBs Speichern großer Dateien als Dateien und nicht eine bessere Lösung. Wenn die Dateien klein waren (z. B. MP-JPGs), kann sich das Guthaben verschieben. Aber bei großen Dateien hat der Aufwand für die DB-Verarbeitung und die zusätzlichen Lastanforderungen für den DB-Server keinen Sinn. Halte sie getrennt.

+0

Super!Ich bin wirklich froh, dass du mir das erklärt hast! Es hilft eine Tonne! –

5

Das Speichern von Bildern in BOLB ist nicht effizient. Es wird schwer zu verwalten sein. Ihre Datenbank wird groß.

Es wird langsamer dann mit einem PHP-Skript

+0

Einverstanden. Ich würde auch keine Bilder in einem Ordner ablegen '' '' – halfer

+0

Vielen Dank für den Hinweis! :) –

Verwandte Themen