[COLOR=crimson]$t1=time();[/COLOR]
$i=0;
for ($i; $i<$count; $i++)
{
$query =sprintf("SELECT info FROM avto LIMIT %d, 1", $i);
$resulta = mysql_query ($query) or die ("Ошибка!!!");
$line = mysql_fetch_array($resulta);
$html=strstr($line['info'], $search);
$len=strpos($html, $search2);
$table=substr($html, 0, $len);
$table=$table.$finish;
$set=sprintf("INSERT INTO finish (info) VALUES ('%s')", addslashes($table));
$result=mysql_query($set, $cars) or die(mysql_error());
}
[COLOR=crimson]
$t2=time();
echo "time: "; echo ($t2-$t1);
[/COLOR]
Время обработки БД средствами php
Вот при такой обработки 500 записей, время 18 сек., а если записей 1200, то уже 84 сек. Т.е. время обрабатывания записей в секунду не линейно.
Код:
Если будете говорить, что лучше использовать реги, то я соглашусь с вами :) но! Если даже убрать обработку, а делать просто копирование базы, то на 500 записей вермя 29 сек. а на 1500 записей уже 189 сек.
Обратно время растет нелинейно x(
Код:
[COLOR=crimson]$t1=time();[/COLOR]
$i=0;
for ($i; $i<$count; $i++)
{
$query =sprintf("SELECT info FROM avto LIMIT %d, 1", $i);
$resulta = mysql_query ($query) or die ("Ошибка!!!");
$line = mysql_fetch_array($resulta);
$table=$line['info'];
$set=sprintf("INSERT INTO finish (info) VALUES ('%s')", addslashes($table));
$result=mysql_query($set, $cars) or die(mysql_error());
}
[COLOR=crimson]
$t2=time();
echo "time: "; echo ($t2-$t1);
[/COLOR]
$i=0;
for ($i; $i<$count; $i++)
{
$query =sprintf("SELECT info FROM avto LIMIT %d, 1", $i);
$resulta = mysql_query ($query) or die ("Ошибка!!!");
$line = mysql_fetch_array($resulta);
$table=$line['info'];
$set=sprintf("INSERT INTO finish (info) VALUES ('%s')", addslashes($table));
$result=mysql_query($set, $cars) or die(mysql_error());
}
[COLOR=crimson]
$t2=time();
echo "time: "; echo ($t2-$t1);
[/COLOR]
[COLOR=crimson]
Как измерял время дописал.
Запись содержит html-код на 31_932 байта. ^_^
4919 записей в БД на 141 мб.
[/COLOR]
Что-то очень уж цифры неправдоподобные.
Цитата:
Originally posted by mfender
А чем замерялось время? Каков размер данных в одном ряду, и вообще - объём данных в таблице?
Что-то очень уж цифры неправдоподобные.
А чем замерялось время? Каков размер данных в одном ряду, и вообще - объём данных в таблице?
Что-то очень уж цифры неправдоподобные.
все описал выше другим цветом.
SELECT info FROM avto LIMIT %d, 1
При каждом таком запросе ты заставляешь СУБД просмотреть %d записей в отношении.
Проще сделать так:
Код:
$res = mysql_query("SELECT info FROM avto");
while ($line = mysql_fetch_array($res))
{
// обрабатываем запись
$html=strstr($line['info'], $search);
$len=strpos($html, $search2);
$table=substr($html, 0, $len);
$table=$table.$finish;
$set=sprintf("INSERT INTO finish (info) VALUES ('%s')", addslashes($table));
$result=mysql_query($set, $cars) or die(mysql_error());
}
mysql_free_result($res);
while ($line = mysql_fetch_array($res))
{
// обрабатываем запись
$html=strstr($line['info'], $search);
$len=strpos($html, $search2);
$table=substr($html, 0, $len);
$table=$table.$finish;
$set=sprintf("INSERT INTO finish (info) VALUES ('%s')", addslashes($table));
$result=mysql_query($set, $cars) or die(mysql_error());
}
mysql_free_result($res);