Re: Fastest loop code/best way to get database results into array

From: Date: Mon, 01 Dec 2003 09:12:34 +0000
Subject: Re: Fastest loop code/best way to get database results into array
References: 1 2  Groups: php.general 
Request: Send a blank email to php-general+get-171445@lists.php.net to get a copy of this message
On Mon, Dec 01, 2003 at 03:24:35AM -0500, Robert Cummings wrote: : : On Mon, 2003-12-01 at 03:06, Galen wrote: : > : > I'm working on some code that deals with a LOT of results from a MySQL : > database and drops them into an array. It deals with about 17,200 : > results on a very fast box in about 0.5 seconds, which is not too bad, : > until I realize I may need to call it on about that many results : > several times in a page. : > : > Is there any way to speed things up? Change to a different loop type? : > Some other technique for pulling the data out of the database faster? : > My only requirement is that the array format remain unchanged (yes, : > associative values are important). : > : > Here's the code, which seems awfully simple: : > : > for($i=0; $i < $num_results; $i++) : > { : > $search_results[$i] = mysql_fetch_array($result, MYSQL_ASSOC); : > } : : You might squeeze a little more speed by using the following: : : while( ($search_results[] = mysql_fetch_assoc( $result )) !== false ); : array_pop( $search_results ); For large query results, you might consider using mysql_unbuffered_query() and the while-loop instead of mysql_query() and the for-loop. Otherwise, if the PHP code is optimal enough, the other obvious place is to maybe optimize the query itself or that particular MySQL table.

« previous php.general (#171445) next »