Re: pg_fetch_array

From: Rod Taylor <pg(at)rbt(dot)ca>
To: Thanks <Thanks(at)verymuch(dot)com>
Cc: Postgresql Performance <pgsql-performance(at)postgresql(dot)org>
Subject: Re: pg_fetch_array
Date: 2004-06-20 20:02:17
Message-ID: 1087761736.64388.83.camel@jester
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-performance

> Does php need to read database everytime when pg_fetch_array is executed in
> the while loop or all the rows have been in the memory after pg_query?

You may need to ask the php people about this one. The PostgreSQL
protocol would allow data to continue streaming in at the same time as
you are processing other rows (asynchronous retrieval). So, optionally
they may fetch and cache all rows in local memory at pg_query OR grab
them in sets of 1000 rows and cache that (fetching the next set when the
first set runs out) OR grab one row for each fetch.

You could run a simple select that will fetch 100M rows from a table
with no WHERE clause. See how quickly the first row come in, and how
much memory is used by the process.

I suspect they call all of the rows at pg_query execution. Otherwise
they wouldn't know how to respond to a pg_num_rows() call.

On a side note, that is a rather unique email address.

In response to

Browse pgsql-performance by date

  From Date Subject
Next Message Andrew McMillan 2004-06-21 10:11:49 Re: Slow vacuum performance
Previous Message Tom Lane 2004-06-20 18:45:06 Re: Indexing question