pointer
Создатель
- Регистрация
 - 24 Окт 2011
 
- Сообщения
 - 14
 
- Реакции
 - 1
 
- Автор темы
 - #1
 
добрый день.. 
возник вопрос по поводу обновления прайс листов на сайте. Прайсы должны обновляться раз в сутки.
сейчас в таблице 568071 записей.
Структура:
	
	
	
		
обновление идет по supplier= поставщик : id в их базе;
	
	
	
		
обновляется очень долго.. запуская в консоли запрос работает почти час, а если запускать без проверки секунд 20 всего. Как можно ускорить работу скрипта при проверке существования
UPD:
Спасибо большое.. все заработало..
	
		
			
		
		
	
				
			возник вопрос по поводу обновления прайс листов на сайте. Прайсы должны обновляться раз в сутки.
сейчас в таблице 568071 записей.
Структура:
		Код:
	
	Id, Sub_id, Class_id, user_id, Name, Desc, price, price_min, supplier;
Id PRIMARY
	
		PHP:
	
	<?php
function q($query, $ignore_errors = false)
{
    global $LinkID;
    if ($GLOBALS["ENABLE_BENCHMARK"]) starttimer("SQLQ0");
    $res = mysql_query($query,$LinkID);
    if ($GLOBALS["PRINT_QUERIES"]) print "<![CDATA[<pre><font color=red>$query</font> [<font color=blue>".mysql_affected_rows()."</font>]</pre><hr>]]>";
    if (mysql_error())
    {
        //if (!$ignore_errors) { user_error(mysql_error()."\n<br><b>Query:</b> <pre>$query</pre>\n"); }
        print mysql_error()."\n<br><b>Query:</b> <pre>$query</pre>\n";
        return false;
    }
    else
    {
        if ($GLOBALS["ENABLE_BENCHMARK"])
        {
            $e = stoptimer("SQLQ0", "SQL", $query); // NOT LOGGED FOR QUERIES CAUSED ERROR
            if ($GLOBALS["PRINT_QUERIES"]) { print "<font color=green>$e</font>"; }
        }
        return $res;
    }
}
function value($query)
{
    return @mysql_result(q($query),0,0);
}
@$file = fopen($TMP_FOLDER.'price.csv', 'r') or die('Ошибка');
flock($file, 1);
$i=1;
while(!feof($file)) {
    $Mass = fgetcsv($file, 1024, ';');
    $suplier='sklad1:'.$Mass[0];
    $sql = value("SELECT COUNT(Name) FROM `Table` WHERE `supplier`='$suplier'");
    if ($sql==0){
        q("INSERT table ....");
    }else{
        q("UPDATE table ....");
    }
}
?>
	обновляется очень долго.. запуская в консоли запрос работает почти час, а если запускать без проверки секунд 20 всего. Как можно ускорить работу скрипта при проверке существования
UPD:
на поле supplier установлен индекс?
...
Спасибо большое.. все заработало..
			
				Последнее редактирование модератором: