Harte Datei auf dem Server oder binär für Ton- und Bilddateien in SQL mit ASP.Net-Anwendung

StackOverflow https://stackoverflow.com/questions/710976

Frage

Ich baue eine ASP.Net C # Web-Anwendung, die eine Menge Sound-Dateien und Bilddateien verwenden werden. Betrachtet man die Leistung, wäre es am besten, alle Dateien in SQL als Bilddatentyp speichern und aus der Datenbank oder zu speichern / archivieren Sie die Fest Datei auf dem Server und speichern Sie den Pfad in SQL abrufen? Im neugierig auf die Vor-und Nachteile -. Andere als die offensichtlichen Stauraum und Verwaltbarkeit

Keine korrekte Lösung

Andere Tipps

Mein aktueller Kunde sucht zur Zeit auf den gleichen Optionen. Es gibt ein paar Nachteile zu berücksichtigen:

Speicher als Bilddatentyp:

  • Sie müssen nur Ihre Datenbank sichern, anstatt die DB und Orte auf dem Dateisystem
  • Sie müssen nicht über Dateien kümmern, ohne dass die DB mit dem neuen Standort aktualisiert werden oder andere Probleme mit hängenden Zeigern auf nicht vorhandene Dateien verschoben werden

Speicher als Datei mit einem Pfad in der DB:

  • Ein wenig schneller Zugriff (wir in den nächsten Tagen diese Quantifizierung würden)

Ursprünglich dachte ich, dass es auch ein Problem mit Client-seitiges Caching von Bildern sein würde. Wenn zum Beispiel .NET das Bild aus dem DB kann der Client bekommt Browser nicht zwischenspeichern - es sieht aus wie ein neues Bild jedes Mal. Ich lernte dann, dass, wenn Sie Benutzer Zugriff auf Dateiebene geben (ein Sicherheits no-no) Sie in das gleiche Problem laufen mit direktem Dateizugriff.

Aus Performance-Sicht sollten Sie besser die Speicherung die Töne / Bilder als Dateien sein und nur einen Verweis auf die Lage in der Datenbank zu halten. Dadurch sparen Sie davon ab, die Daten aus der Datenbank zu dem Web-Server und Rekonstitution der „Datei“ über einen Handler zu übertragen, wenn es referenziert wird. Natürlich könnte Caching dies helfen, aber Sie würden immer noch die Strafe auf jeder Cache-Miss zahlen. Diese Lösung ist auch, für mein Geld, etwas weniger kompliziert in Bezug auf den Code, der entwickelt werden muss, wenn Sie Fragen zu tun haben mit Kollisionen und einig zusätzlichen Sicherheits-Setup (möglicherweise) zu tun, wenn Sie Upload ermöglichen.

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