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 по дате отправления: