1й)
while( list( $summ, $tovar, $id ) = mysql_fetch_row($zapros2) ) { ... }
2й)
while( $myrow2 = mysql_fetch_assoc($zapros2) )
{
$summ= $myrow2['summ'];
$tovar= $myrow2['tovar'];
$id= $myrow2['id'];
...
}
Спустя 5 минут, 9 секунд (11.03.2011 - 17:33) kuzroman написал(а):
И вообще имеет ли смысл их сравнивать?
Хотя база довольно большая - каждый день добавляется около 20тыс строк.
Хотя база довольно большая - каждый день добавляется около 20тыс строк.
Спустя 14 минут, 19 секунд (11.03.2011 - 17:47) inpost написал(а):
kuzroman
$t = microtime(true);
// Скрипт
echo microtime(true) - $t;
Спустя 6 минут, 22 секунды (11.03.2011 - 17:54) Trianon написал(а):
Цитата (kuzroman @ 11.03.2011 - 17:33) |
И вообще имеет ли смысл их сравнивать? Хотя база довольно большая - каждый день добавляется около 20тыс строк. |
нет, не имеет . Вернее сказать, сравнивать-то имеет смысл, но не с точки зрения производительности.
Проблемы с производительностью, которые (когда и если) начнутся у Вас из-за размера таблицы, будут совсем не в этой строке.
Разница в скорости между ними - несущественная.
А вот, например, тот факт, что первый вариант зависит от порядка перечисления полей в SQL-запросе, а второй - не зависит, составляет разницу уже заметную.
Спустя 15 минут, 43 секунды (11.03.2011 - 18:09) kuzroman написал(а):
Цитата (inpost @ 11.03.2011 - 14:47) |
kuzroman$t = microtime(true); |
Как показывает моя практика эта функция при одном и том же условии практически всегда показывает разное время.
Спустя 3 минуты, 29 секунд (11.03.2011 - 18:13) kuzroman написал(а):
Цитата (Trianon @ 11.03.2011 - 14:54) | ||
нет, не имеет . Вернее сказать, сравнивать-то имеет смысл, но не с точки зрения производительности. Проблемы с производительностью, которые (когда и если) начнутся у Вас из-за размера таблицы, будут совсем не в этой строке. Разница в скорости между ними - несущественная. А вот, например, тот факт, что первый вариант зависит от порядка перечисления полей в SQL-запросе, а второй - не зависит, составляет разницу уже заметную. |
т.е. если я в sql запросе выбираю 3 поля вместо *, то он будет быстрее или это тоже несущественно?
Спустя 47 минут (11.03.2011 - 19:00) Trianon написал(а):
Цитата |
т.е. если я в sql запросе выбираю 3 поля вместо *, то он будет быстрее или это тоже несущественно? |
Для первого варианта это существенно, но вовсе не потому, что это, возможно, будет быстрее,а потому, что при этом уходит зависимость от порядка полей в таблице.
Для второго варианта так сразу не скажешь.
С одной стороны, безусловно, если требуется небольшое количество полей, а в таблице (а) их много, либо (б) имеются не требуемые в запросе поля большого объема (по сравнению с требуемыми), то и время обработки и нагрузка на сервер БД (и на клиентскую часть стороны приложения) при перечислении полей сократится. Особенно если выбирается много строк.
С другой, если лишних полей / строк немного, отсутствие повторного перечисления позволяет избежать ошибок при модификации скрипта, буде таковая понадобится.
Как-то так.
Спустя 8 часов, 50 минут, 24 секунды (12.03.2011 - 03:50) Shumomer написал(а):
Вобще говоря (по тестам) while( list( $summ, $tovar, $id ) = mysql_fetch_row($zapros2) ) { ... } быстрее. Но это существенно только если ОЧЕНЬ много запросов к маленьким таблицам.
Спустя 10 минут, 27 секунд (12.03.2011 - 04:01) inpost написал(а):
kuzroman
Сервер в зависимости от нагрузки и даёт разный результат, но там в долях секунд. Если один раз запустить скрипт, то получится что-то типо: 0,000001 сек. Тебе же надо довести до 0,1 или вообще до 1 сек, поэтому один и тот же скрипт запускай в цикле (тысячу, десять тысяч, сто тысяц инерций). Тогда результат работы будет что-то типо:
0,831831 - и...
0,945252 - !
Вот тогда и будет видна разница работы скрипта.
Вот приблизительный результат увидишь: http://inpost.dp.ua/12/test3.php
Попробуй обновить несколько раз, хоть и цифры будут разные, но результат по скорости почти всегда очевиден, кто быстрее. Один и тот же скрипт повторился 10 000 или 100 000 раз, не помню точно =)
Сервер в зависимости от нагрузки и даёт разный результат, но там в долях секунд. Если один раз запустить скрипт, то получится что-то типо: 0,000001 сек. Тебе же надо довести до 0,1 или вообще до 1 сек, поэтому один и тот же скрипт запускай в цикле (тысячу, десять тысяч, сто тысяц инерций). Тогда результат работы будет что-то типо:
0,831831 - и...
0,945252 - !
Вот тогда и будет видна разница работы скрипта.
Вот приблизительный результат увидишь: http://inpost.dp.ua/12/test3.php
Попробуй обновить несколько раз, хоть и цифры будут разные, но результат по скорости почти всегда очевиден, кто быстрее. Один и тот же скрипт повторился 10 000 или 100 000 раз, не помню точно =)
Спустя 3 дня, 6 часов, 34 минуты, 44 секунды (15.03.2011 - 10:35) kuzroman написал(а):
Понял, спасибо всем!
_____________
kuzroman@list.ru