Парсер прайс-листов формата csv со сниженным потреблением ресов

Объясняю ситуацию. Есть некий пхп скрипт, который написан для записи товаров из текстового файла в бд. Данный скрипт написан с использованием ООП. Никаких временных данных для работы скрипт в себе не содержит для экономии оперативки. Изначально, сохранялись некоторые временные данные для снижения нагрузки на мускул. Сейчас большая нагрузка на мускул и проц. у кого какие варианты по поводу снижения нагрузки на мускул и проц при этом не увеличивая потребление оперативки? Я вообще думал кешировать результаты запроса в файл на диск, как это делает CI, но при открытии этого кеша будет потребляться оперативка. Любые комментарии и предложения приветствуются :)
 

c0dex

web.dev 2002-...
Команда форума
Партнер клуба
Ну если такие крахоборы, что не можете позволить себе 1Г оперы, то парсите по частям.
 
Забыл про эту деталь, данные записываются не в одну таблицу а в несколько. Так же не все товары из csv должны быть записаны в базу, т.к. могут отсутствовать какие-то данные, из-за которых будет нарушена целостность базы.
 

korchasa

LIMB infected
Самый быстрый способ импорта - LOAD DATA INFILE. По оптимизации обычных инсертов можно почитать про bulk insert.
 

DYPA

Настоящая dypa (c)
1) читать построчно через fgetcsv.
2) LOAD DATA INFILE в отдельную таблицу и потом работать только с таблицей ;)
 
На сколько я понимаю bulk insert это для MSSQL? Как писал выше, добавлять нужно не все данные из csv, присутствует логика добавления товара в базу.
 
Народ, подскажите , как снизить нагрузку на проц. На локальной машине при запуске скрипта отъедается приблизительно 50% ресов проца. У меня такое подозрение, что когда любой скрипт работает более одной секунды, то нагрузка на проц сильно возрастает. Верно ли мое предположение? Подскажите, плиз.
 

korchasa

LIMB infected
Нет, не верно. И почему ты решил, что 50% это много для твоего скрипта?
 
А что? Мало что ли? Мне кажется что 50% от проца это много. Не подскажешь где можно почитать инфу по данному вопросу?
 

prolis

Новичок
Как писал выше, добавлять нужно не все данные из csv, присутствует логика добавления товара в базу.
необходимо сменить логику работы с каждой записью в скрипте на групповую обработку средствами БД. Как уже объясняли выше: быстро все загрузить из файла во временную таблицу, а затем несколькими запросами быстро перенести данные из временки в рабочие таблицы.
 
Сверху