Skip site navigation (1) Skip section navigation (2)

Re: PHP memory usage

From: Nick Barr <nicky(at)chuckie(dot)co(dot)uk>
To: A Palmblad <adampalmblad(at)yahoo(dot)ca>
Cc: pgsql-php(at)postgresql(dot)org
Subject: Re: PHP memory usage
Date: 2004-05-31 22:50:43
Message-ID: (view raw, whole thread or download thread mbox)
Lists: pgsql-php
A Palmblad wrote:
> We've been running into some issues with PHP and Postgres, and memory usage.
> On a dual athlon 64, w/ 4 gigs of RAM, PHP 4.3.6, and Postgres 7.4.2 I've
> seen our server start to crawl after some queries returning very large
> result sets.  Although large result sets aren't exactly what we want to be
> dealing with, I really want to avoid a situation where a user could disrupt
> our server with certain options to some searches.
> I did a quick commandline test, and it looks like PHP starts to eat memory
> during its call to pg_query.  By eat memory, I mean use memory well in
> excess of php.ini's memory_limit of 8 megs.  (I stop it around 90% of
> available memory usage)  Is this acceptable behaviour, or should I report it
> to PHP as a bug?  If not, are my only solutions to wrap my selects in
> cursors and/or to use limit?
> -Adam Palmblad
> ---------------------------(end of broadcast)---------------------------
> TIP 7: don't forget to increase your free space map settings
My guess is that PHP is pulling the entire record set into memory, 
something which is not good as you can imagine. The only real solutions 
to this are to reduce the size of the record set, or use cursors.

You could reduce the size of the record set by using paging, i.e. only 
allowing the user to see say 20 records out of 5000. The way I have 
implemented this in the past is to do a COUNT(*) on the entire record 
set then use LIMIT 20 OFFSET 200. Alternatively you could use the cursor 
to return the data you want to look at.

Hope that almost helps.


In response to

pgsql-php by date

Next:From: Robby RussellDate: 2004-06-02 20:17:51
Subject: Re: PHP memory usage
Previous:From: A PalmbladDate: 2004-05-31 21:22:18
Subject: PHP memory usage

Privacy Policy | About PostgreSQL
Copyright © 1996-2017 The PostgreSQL Global Development Group