Performance-Frage

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

Responses

Browse pgsql-de-allgemein by date

  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 ==