User Tools

Site Tools


wiki:postgres:pg_tune_kurs_toast

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

wiki:postgres:pg_tune_kurs_toast [2017/09/28 12:21] (current)
Line 1: Line 1:
 +====== The Oversized-Attribute Storage Technique (TOAST) ======
 +Siehe auch [[http://​developer.postgresql.org/​pgdocs/​postgres/​storage-toast.html|Pg-devel Doku: TOAST]].\\
  
 +Wenn ein Datenbank-Feld größer als :?: 1096 Byte :?: ist wird ein zweites Storage-File angelegt (pg_toast.pg_toast_NNNNN_index etc.).
 +Es wird sozusagen (nach Hans) getoastet und rausgeschrieben (mmmmm, Hawaitoast wäre wieder einmal gut :-))
 +Ein Tupel besteht dann aus dem Header (ctid, xmin etc.), Daten und einem offset pointer auf das zweite Storage-File. Das Feld wird beim offset kopiert. **Es werden nur jene Werte getoastet die zu groß sind (nicht die ganze Spalte).**\\
 +\\
 +  test# alter table a alter column b set STORAGE ​ # und 2x TAB-Taste
 +  EXTENDED ​ EXTERNAL ​ MAIN  PLAIN
 +  # Vier unterschiedliche Strategien um TOAST-Spalten zu speichern
 +  # PLAIN      in-line Speicherung (innerhalb der Tabelle) und keine Kompression.
 +               ​Einzige Möglichkeit für nicht TOAST-fähige Datentypen.
 +  # EXTENDED ​  ​Ermöglicht Kompression und out-of-line storage (default für meiste TOAST-fähige Datentypen.
 +               ​Kompression wird zuerst versucht, dann out-of-line Speicherung wenn die Zeile immer noch zu groß ist.
 +  # EXTERNAL ​  ​Erlaubt out-of-line Speicherung aber keine Kompression. Macht substring Operationen auf große
 +               ''​text''​ oder ''​bytea''​ Spalten schneller aber benötigt mehr Speicherplatz.
 +  # MAIN       ​Erlaubt Kompression aber keine out-of-line Speicherung (out-of-line wird dennoch als letzte Möglichkeit durchgeführt)
 +
 +Komprimieren kann sinnvoll sein, wenn die CPU schneller entpacken als die Disk lesen kann. Für jpeg ist komprimieren sinnlos, da es ja schon komprimiert ist. Für Geometrie üblicherweise auch da binär.
wiki/postgres/pg_tune_kurs_toast.txt · Last modified: 2017/09/28 12:21 (external edit)