From: | "Tim Frießinger" <Tim(dot)Friessinger(at)gmx(dot)net> |
---|---|
To: | pgsql-de-allgemein(at)postgresql(dot)org |
Subject: | Performance-Frage |
Date: | 2007-04-10 07:46:25 |
Message-ID: | 20070410074625.123840@gmx.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-de-allgemein |
Hallo!
Ich hätte da mal eine Performance-Frage an die erfahrenen "Datenbankler":
Ich möchte mir eine Datenbank-Applikation programmieren, mit der ich Bilder verwalten kann.
Mein Datenbank-Schema sieht vor, dass ich mir mehrere (Bilder-)Kategorien anlegen kann. Jede Kategorie kann dann mehrere Alben enthalten. Die einzelnen "Bilder" sind dann entsprechend unterhalb der "Alben" zu finden.
Entsprechend habe ich eine Tabelle für Kategorien, eine für Alben und eine für Bilder. Wenn ich das Schema normalisiere (sofern ich das richtig gemacht habe) hat jedes Tupel in der Tabelle Alben einen Verweis auf die Kategorie, in dem es enthalten ist (foreign key), jedes Bilder-Tupel hat entsprechend eine Referenz auf sein Album.
Da ich immer wenn ich ein Bild selektiere, eigentlich auch die zugehörige Kategorie benötige (die Bilder sind nicht als BLOB/BYTEA in der Datenbank, sondern liegen im Dateisystem in Pfaden welche der Struktur Kategorie/Album/Bildername folgen), stellt sich mir nun die Frage, ob es nicht deutlich effizienter ist, wenn jedes Bild auch noch direkt eine Referenz auf seine Kategorie enthält. Theoretisch benötige ich diese ja nicht, da ich über die Tabelle Alben auch an die entsprechende Kategorie herankomme. "Spendiere" ich den Bildern einen eigenen foreign key, benötige ich für jedes Bild einen BIGINT mehr an Speicher, andererseits spare ich mir eine Menge JOIN-Operationen (welche ja nicht gerade billig sind).
Ich würde behaupten, die Lösung mit dem zusätzlichen foreign key ist erheblich effizienter, allerdings würde mich auch mal die Meinung der erfahrenen Benutzer hier interessieren, vielleicht täusche ich mich ja?
Würde mich sehr über Antwort freuen!
Vielen Dank & viele Grüße,
Tim
--
"Feel free" - 10 GB Mailbox, 100 FreeSMS/Monat ...
Jetzt GMX TopMail testen: http://www.gmx.net/de/go/topmail
From | Date | Subject | |
---|---|---|---|
Next Message | A. Kretschmer | 2007-04-10 08:39:52 | Re: Performance-Frage |
Previous Message | Andreas 'ads' Scherbaum | 2007-04-09 19:17:43 | == Wöchentlicher PostgreSQL Newsletter - 08. April 2007 == |