|
|
|
| заменил в скрипте функцию mysql_result на mysql_fetch_array как теоретически более быструю. но скрипт после этого стал работать раза в 3 медленнее, чем раньше. пожалуйста, подскажите, что я не так сделал, и как сделать лучше? может быть я поступил неправильно, внеся обращение к базе в цикл?
кусок скрипта до замены:
$query="SELECT date_pub, theme, quest FROM faq WHERE from='$from' ORDER BY quest_id DESC LIMIT $start, $limit";
$result=mysql_query($query);
$num=mysql_num_rows($result);
for ($i=0;$i<$num;$i++)
{ $date=mysql_result($result,$i,"date_pub");
$theme=mysql_result($result,$i,"theme");
$quest=mysql_result($result,$i,"quest");
$list=$list."$date <b>$theme</b><br> $quest<br>\n";
}
|
кусок скрипта после замены (работает медленнее):
$query="SELECT quest_id FROM faq LIMIT $start, $limit";
$result=mysql_query($query);
$num=mysql_num_rows($result);
for ($i=0;$i<$num;$i++)
{ $st = $start + $i;
$query="SELECT date_pub, theme, quest FROM faq WHERE from='$from' ORDER BY quest_id DESC LIMIT $st, 1";
$result=mysql_query($query);
$fetch=mysql_fetch_array($result);
$date=$fetch['date_pub'];
$theme=$fetch['theme'];
$quest=$fetch['quest'];
$list=$list."$date <b>$theme</b><br> $quest<br>\n";
}
|
| |
|
|
|
|
|
|
|
для: irr
(24.10.2005 в 14:43)
| | Всё действительно гораздо проще:
<?
$query="SELECT date_pub, theme, quest FROM faq WHERE from='$from' ORDER BY quest_id DESC LIMIT $st, 1";
$result = mysql_query($query);
$list = "list contetents"; // Эта переменная должна быть объявлена заранее...
WHILE ($resarray = mysql_fetch_array($result)) {
$date=$resarray['date_pub'];
$theme=$resarray['theme'];
$quest=$resarray['quest'];
$list=$list."$date <b>$theme</b><br> $quest<br>\n";
}
?>
|
| |
|
|
|
|
|
|
|
для: DDK
(24.10.2005 в 15:43)
| | спасибо большое! Ваш пример работает.
я замерил через microtime() - скорость работы этого скрипта точно такая же, как и при использовании функции mysql_result. mysql_fetch_array ее не обгоняет-таки. хотя это не принципиально. но почему тогда в теории mysql_fetch_array считается быстрее? | |
|
|
|
|
|
|
|
для: irr
(24.10.2005 в 16:42)
| | Вы замеряете на очень коротких дистанциях... попробуйте замерить на объёме запроса мегабайт эдак в 5... | |
|
|
|
|
|
|
|
для: irr
(24.10.2005 в 14:43)
| | Так у вас во втором болке на каждом цикле выволняется запрос mysql_query(), а в первом нет - поэтому и в три раза дольше... | |
|
|
|