Search Postgresql Archives

Re: Complete row is fetched ?

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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


--
Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-general

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Postgresql Jobs]     [Postgresql Admin]     [Postgresql Performance]     [Linux Clusters]     [PHP Home]     [PHP on Windows]     [Kernel Newbies]     [PHP Classes]     [PHP Books]     [PHP Databases]     [Postgresql & PHP]     [Yosemite]
  Powered by Linux