User since
2003-08-15
2653
Artikel
BenutzerIn
Ich habe in meiner Community ca. 185.000 Bilder. Das Bild ist durchschnittlich 64 kb groß.
Macht es sinn, die Bilder ebenfalls in der mysql Datenbank zu speichern? Oder arbeitet man bei solchen Tragweiten lieber auf traditionelle Weise?
Bisher befinden sich die Bilder in einem Verzeichnis.
User since
2003-11-28
3645
Artikel
ModeratorIn
Ich bezweifle, dass es schneller als mit Apache->send_fd geht, insbesondere wenn dieses per sendfile(2) implementiert wurde.
User since
2003-08-15
2653
Artikel
BenutzerIn
Was hat denn das damit zu tun?
Das File muss sowieso vorher auf der Festplatte gecached werden, zwecks optimierung etc.
es geht nur darum, wie sich die Datenbank bei dieser "Last" möglicherweise verhält. Würdest du in einer Community die Bilder in einer Datenbank speichern?
Irgendwelche Vorteile muss dies blob doch haben.\n\n
<!--EDIT|Froschpopo|1161044295-->
User since
2006-07-10
2611
Artikel
BenutzerIn
Die Verwaltung (Backup, Übertragung oder Aufräumen) ist einfacher wenn man alles in einer Struktur hat. Wenn du Bilder im Dateisystem gespeichert hast und die restlichen Daten in der DB, so kann es zu Differenzen kommen, wenn du die DB oder das Dateisystem veränderst.
Wenn aber die Bilder in der DB sind, ist der Zugriff darauf ohne Script nicht mehr so einfach. Weiterhin kann das auf kosten der Geschwinigkeit und Speicher gehen. Da Blob keien feste Größe hat. Das macht die Indizierung komplizierter und mache DBs geben allen Blobs die größe, die der größte Blobeintrag hat. Das verschwendet eine Menge Speicher.
Es kommt halt immer darauf an was du willst und was du hast.
Wenn es nur um die Handhabung geht so würde ich soviel es geht in die DB stecken, da du dann mit einem Toolset alles machen kannst, und die Daten nicht den Zusammenhang verlieren können.
Wenn ich die Daten aber auch anderweitig verwenden will, oder die DB eine Größenbeschränkung, oder Geschwindigkeitsprobleme hat, so ist es besser die Bilder im Dateisystem abzulegen.
User since
2003-08-04
7321
Artikel
ModeratorIn
sehe ich genauso.
falsch ist es natürlich, den vollen pfad in der db zu speichern.
ich würde den namen (oder die datei selbst) durch ne Fingerprint-Funktion jagen, das resultat in der db festhalten und die datei auch so nennen.
User since
2003-08-15
2653
Artikel
BenutzerIn
[quote=esskar,17.10.2006, 07:20]sehe ich genauso.
falsch ist es natürlich, den vollen pfad in der db zu speichern.
ich würde den namen (oder die datei selbst) durch ne Fingerprint-Funktion jagen, das resultat in der db festhalten und die datei auch so nennen.[/quote]
der Dateiname ist bisher der Primärschlüssel vom Datensatzes des Users.
Insofern kann ich mir eine Spalte für Dateinamen sparen.
Bei den Files handelt es sich um Benutzerbilder.
Ich kann mich bisher eigentlich nicht beschweren. Aber ich möchte natürlich trotzdem gerne wissen, wie es die profis machen ;)
User since
2003-11-28
3645
Artikel
ModeratorIn
Wenn man einen Cluster hat, dann sind BLOBs in Datenbanken leichter zu handhaben, da der Synchronisationsaufwand zwischen den Festplatten entfällt. Man könnte aber auch Zwitter wie
MogileFS verwenden.
User since
2003-08-15
2653
Artikel
BenutzerIn
ich hab Angst vor ner 20 Gb Datenbank.\n\n
<!--EDIT|Froschpopo|1161112939-->
User since
2003-11-28
3645
Artikel
ModeratorIn
Deshalb gibt es ja MogileFS. Da werden nur die Metadaten in der DB gehalten.
User since
2003-08-15
2653
Artikel
BenutzerIn
Und wie sieht das ganze dann aus? Wo liegen dann die Files?