Hallo Marcus,
"Marcus Obst" marcus.obst@etit.tu-chemnitz.de
On 10.05.2011 15:04, Heiko Schlittermann wrote:
Ich habe nun nicht *diese* Ahnung von PostgreSQL, aber wenn ich mir die Doku ansehe, dann steht da was zu "large objects", "lo_import" usw.
Ja, hab ich auch gesehen, allerdings ist das dann ein ,,extra'' API. Ich müsste also den Code einigermaßen umschreiben, so stelle ich mir das aber irgendwie nicht vor.
large objects: "partially obsolete" :-) (Doku zu PostgreSQL 9.0)
Das scheint die Objects nicht in der Tabelle zu vergraben, sondern "extern" und es ist beim Einfüllen der Daten herausfordernder (die müssten als Stream kommen(?)).
Hab ich auch so verstanden
Vielleicht ist ja dieses bytea nicht das, was Du brauchst.
Vielleicht nicht, aber es ist das was ich wöllte :)
bytea ist schon das, was Du willst. Vermutlich macht das Insert zuviel Bloedsinn.
[Beispiel in etwa fuer Perl DBI) Fuer Bulk-Inserts ist es guenstig, zuerst das Statement mit Platzhaltern zu parsen
$sth = $dbh->prepare (q[INSERT INTO tabelle (id, beschreibung, bild) values (?, ?, ?)]);
und dann fuer jeden Datensatz das vorbereitete Statement mit den speziellen Werten aufzurufen:
foreach (@werte) { $sth->execute ($_->{id}, $_->{beschreibung}, $_->{bilddaten}); }
Das spart a) das staendige Neuparsen der Anweisung und die Erstellung des Ausfuehrungsplans, und b) die Konvertierung der Binaerdaten in "Escaped ASCII" weil das Protokoll fuer diesen Fall eine Rohdatenuebertragung vorsieht.
COPY waere vielleicht schneller (wenn man die Binaerdaten schnell genug eingepackt bekommt).
Mysql hätte es bestimmt gekonnt...
wzbw. (was zu beweisen waere)
PostgreSQL kann es, Du hast eben noch nicht alles rausgekitzelt.
BTW, Raid-5 ist fuer Datenbanken nicht so der Bringer. Besser ist Raid-1 oder davon abgeleitete Varianten.
Holger ___________________________________________________________ Schon gehört? WEB.DE hat einen genialen Phishing-Filter in die Toolbar eingebaut! http://produkte.web.de/go/toolbar