Hi, ich habe im Netz viele HOWTOs und Beschreibungen gefunden wie ich Binary Dateien in eine MYSQL-DB speichere. Jedoch wird jeweils das Binary lediglich zum Downlad wieder bereitgestellt. Bei meinen Binary Daten handelt es sich allerdings um JPEGs die auf einer WEB-Seite dargestellt werden sollen. Wie ich das jedoch anstelle habe ich nirgends gefunden. Also das Problem ist ein jpeg Binary aus der MYSQL-DB auszulesen und das Bild im HTML-Text zu verwenden. Meine Idee ist, dass ich ein kleines Script schreibe, dass per link die Datei "blank" als File zurückgibt. Diesen Link könnte ich dann evtl. verwenden um die Pics auf der Website darzustellen. Ich hoffe das geht überhaupt und mir kann jemand von Euch sagen wie. Merci schon mal und schöne Grüße OLI
Hallo OLI,
ich habs schon gemacht, rate Dir aber dringend davon ab.
Der Mysql-Server hat bei 1500 Bildern (kleine JPGs von Gebrauchtfahrzeugen,
Größe wie bei Autoscout24 oder Mobile.de) trotz 2 GHZ-Prozessor und 1 GB RAM
extreme Leistungseinbussen gezeigt. Auf eine Webseite, in der 5 Bilder drin
waren, die aus der DB kamen, musste man schon mal 10 Sekunden warten.
Ich hatte vorher beim Googeln schon was gelesen, daß davon allgemein
abgeraten wird, binäre Sachen in MYSQL zu speichern.
Ich wollt's nicht glauben und dachte, so schlimm kann's nicht sein, das
merkt man bestimmt nur bei Benchmarks. Der Vorteil, daß dann beim Löschen
eines Datensatzes das Bild auch mit verschwindet, ohne sich um weiteres
kümmern zu müssen, erschien mir schon wichtig.
Jetzt musste ich den ganzen Zirkus umstricken, die JPGs liegen normal im
Filesystem, in der DB sind nur die Pfade zu den Bildern.
Jetzt rennt der SQL Server wieder, so wie ich es von MYSQL gewohnt bin.
Was ein weiterer Nachteil ist, wenn Du binäre Sachen in MYSQL speicherst:
der Dump über mysqldump oder phpMyAdmin geht nicht mehr.
Falls Du wirklich selbst erst der Ödd sein willst und es entgegen aller
Warnungen probieren willst, kann ich Dir Beispielcode posten...
Aber ich geb Dir den Tip, es zu lassen.
Grüße
Michael
----- Original Message -----
From: "Tim Oliver Wagner"
So geht's:
Header( "Content-type: image/jpeg");
Header("pragma: no-cache");
Gruß
Michl
----- Original Message -----
From: "Tim Oliver Wagner"
Am Dienstag September 7 2004 10:28 schrieb Tim Oliver Wagner:
Hi, ich habe im Netz viele HOWTOs und Beschreibungen gefunden wie ich Binary Dateien in eine MYSQL-DB speichere. Jedoch wird jeweils das Binary lediglich zum Downlad wieder bereitgestellt. Bei meinen Binary Daten handelt es sich allerdings um JPEGs die auf einer WEB-Seite dargestellt werden sollen. Wie ich das jedoch anstelle habe ich nirgends gefunden.
Also das Problem ist ein jpeg Binary aus der MYSQL-DB auszulesen und das Bild im HTML-Text zu verwenden.
Meine Idee ist, dass ich ein kleines Script schreibe, dass per link die Datei "blank" als File zurückgibt. Diesen Link könnte ich dann evtl. verwenden um die Pics auf der Website darzustellen.
Ich hoffe das geht überhaupt und mir kann jemand von Euch sagen wie.
Merci schon mal und schöne Grüße
OLI
Wenn du wirklich binäre Daten in der Datenbank speichern willst, es spricht mehr dagegen als dafür, so solltest du die binären Daten passend verpacken. Ich würde zu base64 raten. Gruß Udo -- "Calling EMACS an editor is like calling the Earth a hunk of dirt." -- Chris DiBona on Dirt (Open Sources, 1999 O'Reilly and Associates)
Am Dienstag, 7. September 2004 21:01 schrieb Udo Neist: [...]
Wenn du wirklich binäre Daten in der Datenbank speichern willst, es spricht mehr dagegen als dafür, so solltest du die binären Daten passend verpacken. Ich würde zu base64 raten.
Nö, die LOBs (Large OBjects) in Datenbanken sollen ja genau die Speicherung unabhängig von ihrem Inhalt sicherstellen. Bei mysql sind das die BLOB-Typen (Binary Large OBjects). Ob es sich lohnt, ist wie immer eine Frage der Anwendung. Dagegen spricht die allgemein schlechtere Performance im Gegensatz zu flat Files, dafür z. B. der einfache Zugriff (mit dem Select hast Du gleich auch das Bild, ohne nochmal auf die Festplatte zugreifen zu müssen), die Möglichkeit des Backups mit den DB-Daten, ... Jan -- Linux-Quickies: http://www.jan-trippler.de PingoS: http://www.pingos.org
Am Dienstag September 7 2004 21:40 schrieb Jan Trippler:
Am Dienstag, 7. September 2004 21:01 schrieb Udo Neist: [...]
Wenn du wirklich binäre Daten in der Datenbank speichern willst, es spricht mehr dagegen als dafür, so solltest du die binären Daten passend verpacken. Ich würde zu base64 raten.
Nö, die LOBs (Large OBjects) in Datenbanken sollen ja genau die Speicherung unabhängig von ihrem Inhalt sicherstellen. Bei mysql sind das die BLOB-Typen (Binary Large OBjects). Ob es sich lohnt, ist wie immer eine Frage der Anwendung. Dagegen spricht die allgemein schlechtere Performance im Gegensatz zu flat Files, dafür z. B. der einfache Zugriff (mit dem Select hast Du gleich auch das Bild, ohne nochmal auf die Festplatte zugreifen zu müssen), die Möglichkeit des Backups mit den DB-Daten, ...
Ich hatte schon mal versucht Blobs einzusetzen, ist aber an MySQL gescheitert, bis ich base64 genutzt hatte. Aber ich will mich gar nicht darum streiten, ich nutze normale Files und die Zuordnung in der Datenbank :) Gruß Udo -- /* These are the most dangerous and useful defines. They do printk() during the interrupt processing routine(s), so if you manage to get "flooded" by irq's, start thinking about the "Power off/on" button... */ 2.2.16 /usr/src/linux/drivers/sbus/char/aurora.h
Am Mittwoch, 8. September 2004 18:55 schrieb Udo Neist: [...]
Ich hatte schon mal versucht Blobs einzusetzen, ist aber an MySQL gescheitert, bis ich base64 genutzt hatte. Aber ich will mich gar nicht darum streiten, ich nutze normale Files und die Zuordnung in der Datenbank :)
Dann spätestens sollte man auf ne richtige Datenbank umsteigen ;-) SCNR Jan -- Linux-Quickies: http://www.jan-trippler.de PingoS: http://www.pingos.org
Is ja nicht wahr.
Dann hast Du nicht mysql_quote benutzt.
"Richtige Datenbanken" kenne ich zur genüge. Jede hat Schwächen. Mysql ist
OK für das meiste.
Gruß
Michl
----- Original Message -----
From: "Jan Trippler"
Ich hatte schon mal versucht Blobs einzusetzen, ist aber an MySQL gescheitert, bis ich base64 genutzt hatte. Aber ich will mich gar nicht darum streiten, ich nutze normale Files und die Zuordnung in der Datenbank :)
Dann spätestens sollte man auf ne richtige Datenbank umsteigen ;-) SCNR Jan -- Linux-Quickies: http://www.jan-trippler.de PingoS: http://www.pingos.org -- Um die Liste abzubestellen, schicken Sie eine Mail an: suse-programming-unsubscribe@suse.com Um eine Liste aller verfügbaren Kommandos zu bekommen, schicken Sie eine Mail an: suse-programming-help@suse.com
Bitte nur an die Liste posten, ich brauche keine Kopie per PM. Danke. Am Mittwoch, 8. September 2004 23:35 schrieb Michael Wesp:
Is ja nicht wahr.
Du hast den Smiley gesehen? Du weisst was "SCNR" bedeutet?
Dann hast Du nicht mysql_quote benutzt.
_Ich_ habe gar nichts nicht benutzt. Das war mein Vorredner (den Du im TOFU entsorgt hast).
"Richtige Datenbanken" kenne ich zur genüge. Jede hat Schwächen. Mysql ist OK für das meiste.
Kommt auf den Anwendungszweck an. Für mich ist mysql eben nicht "OK für das meiste", weil zu viele Sachen fehlen, die ich bei den *meisten* meiner Anwendungen gern zur Verfügung habe. Ich nehme das Teil nur dann, wenn es nicht anders geht (z. B. wenn mein Provider sich standhaft weigert, postgresql oder andere DBMS zu installieren). Jan P.S.: Das TOFU war unnötig. -- Linux-Quickies: http://www.jan-trippler.de PingoS: http://www.pingos.org
Hi Jan! Jan Trippler schrieb am 09.09.2004 01:04 : [... kleiner SQL-DB-Flame ...] Ich verfolge diesen Thread nun schon einige Zeit lang und frage mich ernsthaft: Warum braucht man für solchen Firlefanz überhaupt eine SQL-Datenbank? Kann man denn nicht eine "normale" Datenbank, wie z.B. die Berkeley-DB für solche Geschichten viel effizienter einsetzen? SQL (bzw. relationale DBs an sich) ist doch dafür der absolute Overkill! Oder übersehe ich etwas essentielles? Gruß, Michael
participants (5)
-
Jan.Trippler@t-online.de
-
Michael Wenger
-
Michael Wesp
-
Tim Oliver Wagner
-
Udo Neist