From: | Andreas Seltenreich <andreas+pg(at)gate450(dot)dyndns(dot)org> |
---|---|
To: | Alvar Freude <alvar(at)a-blast(dot)org> |
Cc: | pgsql-de-allgemein(at)postgresql(dot)org |
Subject: | Re: Haeufige Updates in Tabelle mit vielen/breiten Spalten |
Date: | 2006-02-27 05:51:23 |
Message-ID: | 87hd6lfixw.fsf@gate450.dyndns.org |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-de-allgemein |
Alvar Freude writes:
> Wenn Postgres ein Update auf eine Spalte macht, wird aufgrund der
> Transaktionen immer eine komplette Kopie der Spalte angelegt. (wenn ich
> mich nun nicht irre)
s/Spalte/Zeile/, da MVCC ja Zeilenweise agiert.
> Angenommen, ich habe eine Tabelle mit relativ vielen Spalten, einigen
> Texten usw. und eine Spalte davon wird relativ häufig aktualisiert, zum
> Beispiel ein Counter.
Wenn die Text-Felder groß genug sind (> 2kB IIRC), wird darin nur ein
Zeiger auf die passende Toast-Tabelle abgelegt. MVCC-Kopien werden in
dem Fall dann nur von den verbleibenden Zeigern gemacht, und nicht von
Inhalt der Toast-Tabellen.
> Hat jemand Erfahrungswerte, ob bzw. ab wann es sinnvoll ist, diese Spalte
> (oder mehrere häufig zu aktualisierende Spalten) in eine andere Tabelle
> zu verfrachten, damit beim Update nicht immer von allen Spalten (und
> Texten) Kopien angelegt werden müssen und große Lücken entstehen? Oder
> ist das eher Quatsch?
Also ich hatte durchaus schon Fälle, in denen man gerade so unter der
Toast-Grenze lag, und dadurch in rasantem Tempo tote Seiten produziert
wurden. Hier lohnte es sich dann, "manuell zu toasten".
Ich könnte mir auch vorstellen, daß man in macnhen Fällen auch via
"alter table set storage" feineinstellen kann, welche der Felder im
Zweifelsfall getoastet werden.
> Beim Auslesen muss ja auch ein Join gemacht werden und außerdem ist
> dann zwei mal der Overhead für die Spalten-Basisdaten nötig.
Sollte einklich unproblematisch sein, da genau das impliziert wird,
wenn Postgres sich für's toasten entscheidet.
Gruß
Andreas
--
From | Date | Subject | |
---|---|---|---|
Next Message | Alvar Freude | 2006-02-27 18:59:29 | Re: Haeufige Updates in Tabelle mit vielen/breiten Spalten |
Previous Message | Alvar Freude | 2006-02-26 23:01:30 | Haeufige Updates in Tabelle mit vielen/breiten Spalten |