Re: Does TOAST really compress the complete row?

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: Does TOAST really compress the complete row?
Дата
Msg-id 890934.1593728150@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Does TOAST really compress the complete row?  (Thomas Kellerer <shammat@gmx.net>)
Ответы Re: Does TOAST really compress the complete row?  (Adam Brusselback <adambrusselback@gmail.com>)
Список pgsql-general
Thomas Kellerer <shammat@gmx.net> writes:
> I am confused about one claim in this blog post:
https://www.2ndquadrant.com/en/blog/oracle-to-postgresql-binary-objects

>> All columns that come after data > 2000 bytes participate in The
>> Large Attribute Strorage Technique (TOAST). This storage is for the
>> row, not the column. Your id column comes as the last column in the
>> table? Whoopsie, your primary key just got shoved into blob storage

> I always was under the impression that TOASTing only happens on column level, not on row level.

You're right, and the quoted text is wrong.  Not only does TOAST compress
fields not whole rows, but it selectively targets wider fields first.
If your pkey is getting toasted, you should likely rethink your choice
of pkey.  (Or, possibly, you just have so many fields there's no choice
but to compress all of them.  Then it might be time for a table redesign.)

The decision-making about this is concentrated in
heap_toast_insert_or_update, which can be seen here:

https://git.postgresql.org/gitweb/?p=postgresql.git;a=blob;f=src/backend/access/heap/heaptoast.c

            regards, tom lane



В списке pgsql-general по дате отправления:

Предыдущее
От: Anders Steinlein
Дата:
Сообщение: Re: Different results from identical matviews
Следующее
От: Tom Lane
Дата:
Сообщение: Re: Different results from identical matviews