Re: Speicherverbrauch / c't Datenbank-Contest

From: Guido Neitzer <guido(at)objectpark(dot)org>
To: pgsql-de-allgemein(at)postgresql(dot)org
Cc: Alvar Freude <alvar(at)a-blast(dot)org>
Subject: Re: Speicherverbrauch / c't Datenbank-Contest
Date: 2005-11-13 16:24:28
Message-ID: A301E88E-401B-4D10-9762-29ACC2674FB1@objectpark.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

On 13.11.2005, at 16:11 Uhr, Alvar Freude wrote:

> Die customers-Tabelle hat im Falle der mittelgroßen Datenbank 2
> Millionen Zeilen. Beim Login und via Foreign Keys beim Bestellen wird
> darauf zugegriffen.

Von der Performance sollte das eigentlich keinen Unterschied machen.
Es könnte sogar Nachteile im Hinblick auf Caching haben, wenn man das
aufteilt und beide Tabellen unabhängig voneinander in den Cache
geladen werden und sich dann wechselweise wieder aus dem Cache
hinauskicken.

Weiterhin ist es natürlich "böses Design" - aber das zählt ja nun mal
nicht immer.

> Postgres lädt immer die ganze Zeile, oder wird das spaltenweise
> abgelegt
> (und reingeladen)?

Meines Wissens werden "pages" geladen - das werden dann wohl zumeist
ganze Abschnitte mehrerer Zeilen sein. Je kürzer die Zeile desto mehr
paßt in den Cache.

> Weiß gerade jemand Zahlen, wieviel das hier pro Zeile braucht, wenn in
> den Varchar-Feldern zwischen 6 und 20 Bytes stehen?

Wenn ich das richtig in Erinnerung habe - Inhaltslänge + 4 Byte. Ich
bin nicht sicher, ob es bei PG sowas wie einen "Shared-String-
Storage" gibt, sodaß Strings die mehrfach vorkommen, nur einmal
gespeichert werden (macht z.B. FrontBase). Glaube aber nicht, daß es
den gibt.

cug

In response to

Responses

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message Alvar Freude 2005-11-13 17:02:28 Re: Speicherverbrauch / c't
Previous Message Andreas Seltenreich 2005-11-13 16:19:08 Re: Speicherverbrauch / c't Datenbank-Contest