On 16/04/2010 07:11, John R Pierce wrote: > Satish Burnwal (sburnwal) wrote: >> 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 ? >> > > yes and no. > > a row can consist of both a proper tuple in an 8K block, and toast data > stored in toast tables. the whole block that the tuple is in will be > read into the shared_buffers space, however, toast data thats not > referenced will not be fetched. toast is used for larger fields that > won't fit in a single block. On a related note, what happens when you do something like this? - select count(*) .... Does any data actually get read? Is there any difference internally to saying "count(1)" instead? Ray. -- Raymond O'Donnell :: Galway :: Ireland rod@xxxxxx -- Sent via pgsql-general mailing list (pgsql-general@xxxxxxxxxxxxxx) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-general