> 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
pgsql-performance by date
|Next:||From: Andrew McMillan||Date: 2004-06-21 10:11:49|
|Subject: Re: Slow vacuum performance|
|Previous:||From: Tom Lane||Date: 2004-06-20 18:45:06|
|Subject: Re: Indexing question |