Re: PHP memory usage - Mailing list pgsql-php
From | Christopher Kings-Lynne |
---|---|
Subject | Re: PHP memory usage |
Date | |
Msg-id | 40BE80CD.4080308@familyhealth.com.au Whole thread Raw |
In response to | Re: PHP memory usage (Robert Treat <xzilla@users.sourceforge.net>) |
Responses |
Re: PHP memory usage
|
List | pgsql-php |
The simple answer is the PHP's built-in memory checking cannot control what a plugin .so does. Use a cursor. Chris Robert Treat wrote: > Interesting... I was just about to post a question regarding the differences > between the functions mysql_query and mysql_unbuffered_query in regards to > pg_query, but I guess this is the issue right here, and from what I can tell > there is no php based way to work around it. > > Robert Treat > > On Wednesday 02 June 2004 16:41, A Palmblad wrote: > >>I watch Postgres while its doing the query - and the postmaster is not the >>culprit for memory usage. It looks to me like PHP's postgres driver is >>loading the entire result into memory when I do a query. That is, the >>postgres process stays within the memory its config tells it to use, while >>a PHP script will eat as much as it can to load the result set. Although I >>would think best practices would dictate the use of a cursor or some limit >>statements, I was also trying to get at whether or not a PHP extension >><i>should</i> be able to use as much RAM as it wants. >> >>-Adam >>----- Original Message ----- >>From: "Robby Russell" <rrussell@commandprompt.com> >>To: "A Palmblad" <adampalmblad@yahoo.ca> >>Cc: <pgsql-php@postgresql.org> >>Sent: Wednesday, June 02, 2004 1:17 PM >>Subject: Re: [PHP] PHP memory usage >> >> >>>A Palmblad typed this on 05/31/2004 02:22 PM: >>> >>>>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 >>> >>>I am going to take a quick guess and suggest that test those queries in >>>psql itself. You might be running into some issues with your queries. >>> >>> >>>Test your queries with psql, EXPLAIN. >>>\h EXPLAIN >>> >>>-Robby >>> >>>-- >>>Robby Russell, | Sr. Administrator / Lead Programmer >>>Command Prompt, Inc. | http://www.commandprompt.com >>>rrussell@commandprompt.com | Telephone: (503) 667.4564 >>> >>>---------------------------(end of broadcast)--------------------------- >>>TIP 7: don't forget to increase your free space map settings >> >>---------------------------(end of broadcast)--------------------------- >>TIP 7: don't forget to increase your free space map settings > >