Re: Complete row is fetched ?

Поиск
Список
Период
Сортировка
От Yeb Havinga
Тема Re: Complete row is fetched ?
Дата
Msg-id 4BC80CBD.7070703@gmail.com
обсуждение исходный текст
Ответ на Re: Complete row is fetched ?  ("A. Kretschmer" <andreas.kretschmer@schollglas.com>)
Список pgsql-general
A. Kretschmer wrote:
> In response to Satish Burnwal (sburnwal) :
>
>> I have a ques - say I have a table that has 10 columns. But in a simple
>> select query from that table, I use just 3 columns. I want to know
>> whether even for fetching 3 columns, read happens for all the 10 columns
>> and out of that the required 3 columns are returned ? ie Does the
>> complete row with all the 10 columns are fetched even though I need just
>> 3 columns ? OR only 3 columns are fetched ?
>>
>
> Depends, large columns (TEXT, BYTA) are TOASTed¹, that means, the content
> of this columns stored in a other table. So it is always a good idea to
> specify all rows you needed and don't use select *.
>
> ¹ http://www.postgresql.org/docs/8.4/interactive/storage-toast.html
>
Another reason to prefer explicit column lists over SELECT * for queries
on relations with a lot of columsn and rows, is that it enables some
plan nodes to be more economical with memory, see e.g. comment of
'disuse_physical_tlist':

/*
 * disuse_physical_tlist
 *      Switch a plan node back to emitting only Vars actually referenced.
 *
 * If the plan node immediately above a scan would prefer to get only
 * needed Vars and not a physical tlist, it must call this routine to
 * undo the decision made by use_physical_tlist().  Currently, Hash, Sort,
 * and Material nodes want this, so they don't have to store useless columns.
 */

regards,
Yeb Havinga


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

Предыдущее
От: Greg Smith
Дата:
Сообщение: Re: readline library not found
Следующее
От: Raymond O'Donnell
Дата:
Сообщение: Re: Complete row is fetched ?