Re: Fastest loop code/best way to get database results into array
| From: | Eugene Lee | 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.