Re: large resultset
От | vinny |
---|---|
Тема | Re: large resultset |
Дата | |
Msg-id | 1277149934.9667.21.camel@bigboy обсуждение исходный текст |
Ответ на | Re: large resultset (Marco Dieckhoff <marco.dieckhoff@googlemail.com>) |
Список | pgsql-php |
On Tue, 2010-06-15 at 11:49 +0200, Marco Dieckhoff wrote: > Am 15.06.2010 11:40, schrieb vinny: > > On Tue, 15 Jun 2010 10:33:05 +0100, Thom Brown<thombrown@gmail.com> > > wrote: > > > >> On 15 June 2010 09:31, AI Rumman wrote: > >> How to return large resutlset (almost 2 millions record) in php? > >> > >> > >> Obviously that wouldn't do by itself, but it's quite simple to loop over > >> a result set. > >> > > If that's the case surely you'd use some SQL to merge the data into one > > long string and return it in a single record. > > Looping over two million results is going to take a while, not to mention > > quite a bit of memory. > > v. > > > > huh? > > Returning one large record containg the information of two million > records will almost certainly fill up your memory. > First the memory of the sql server, in order to process the combination > of two million records, and if that's even successfull, the memory of > the server processing php. True, I was a little optimistic there :-) > Looping may take "a little" longer, but as only one row at a time is > fetched, it should be the least possible memory use. As far as I know, PHP always downloads the entire queryresult at once and makes it available locally. The database may have less trouble sending two million seperate records but PHP will still need enough memory to hold the entire resultset at once. If you'd really want to reduce memoryusage you'd have to execute several queries that fetch a few thousand rows at a time so you really only deal with a small portion of the records both on the dbserver and in PHP.
В списке pgsql-php по дате отправления: