обновление прайс листов

Статус
В этой теме нельзя размещать новые ответы.

pointer

Создатель
Регистрация
24 Окт 2011
Сообщения
14
Реакции
1
добрый день..
возник вопрос по поводу обновления прайс листов на сайте. Прайсы должны обновляться раз в сутки.
сейчас в таблице 568071 записей.
Структура:
Код:
Id, Sub_id, Class_id, user_id, Name, Desc, price, price_min, supplier;
Id PRIMARY
обновление идет по supplier= поставщик : id в их базе;
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 установлен индекс?
...

Спасибо большое.. все заработало..
 
Последнее редактирование модератором:
добрый день..
возник вопрос по поводу обновления прайс листов на сайте. Прайсы должны обновляться раз в сутки.
сейчас в таблице 568071 записей.
Структура:
Код:
Id, Sub_id, Class_id, user_id, Name, Desc, price, price_min, supplier;
Id PRIMARY
обновление идет по supplier= поставщик : id в их базе;
обновляется очень долго.. запуская в консоли запрос работает почти час, а если запускать без проверки секунд 20 всего. Как можно ускорить работу скрипта при проверке существования
на поле supplier установлен индекс?
вам не нужно делать выборку для проверки
Код:
$sql = value("SELECT COUNT(Name) FROM `Table` WHERE `supplier`='$suplier'");
а просто используйте правильно
Для просмотра ссылки Войди или Зарегистрируйся

тоесть, даже (может и не подойти) такая конструкция Для просмотра ссылки Войди или Зарегистрируйся
Код:
REPLACE into table (id, name, age) values(1, "A", 19)
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху