Aha - thanks. The problem is, I also need to retrieve other data asscociated with it. I'll alter the table to order by id, but is there anything long-term I can do?

Manuel Lemos wrote:


On 11/02/2002 03:21 AM, Leif K-Brooks wrote:

I've been optimizing scripts in an attempt to speed my friend's site up, and I believe I've found the source of the performance problems. When I comment the following page load time changes from around 6 seconds to less than .5 of a second.

$events = mysql_query("select * from events where whofor='{$userinfo['id']}' order by id desc limit 1");
if(mysql_num_rows($events) == 1){
$events = mysql_fetch_array($events);
print <<< END
<p align="center"><a href="{$basepath}doevent.php?id={$events['id']}">{$events['message']}</a></p>

This code checks for events (new mail, etc.) that the user may have and dispays them. Any idea on what makes it perform this badly?

The order by clause is the killer. It forces the server to rebuild the whole table in memory just to returned the results sorted. If you just want the highest id, use MAX(id) .

The above message is encrypted with double rot13 encoding.  Any unauthorized attempt to decrypt it will be prosecuted to the full extent of the law.

PHP Database Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to