Множественный INSERT
Множественный INSERT
Требуется сделать множественный инсерт в базу. Записей порядка более 100 000, какое решение лучше для такой задачи? Смотрел в гайде по Yii в разделе DAO, для множественного инсерта никаких методов готовых не нашёл.
Re: Множественный INSERT
LOAD DATA INFILE
Re: Множественный INSERT
апи надо смотреть http://www.yiiframework.com/doc/api/1.1 ... and-detailPulse писал(а):Требуется сделать множественный инсерт в базу. Записей порядка более 100 000, какое решение лучше для такой задачи? Смотрел в гайде по Yii в разделе DAO, для множественного инсерта никаких методов готовых не нашёл.
Re: Множественный INSERT
Спасибо за ответы, буду пробовать.
Re: Множественный INSERT
Если разово, то глянь http://sypex.net/ =)
Re: Множественный INSERT
Sypex Dumper юзал, полезная штука, но в моей задаче не подходит. У меня задача немного другого плана: мне надо взять данные из таблицы, пересчитать их по определённому алгоритму и записать в новую таблицу. А Sypex Dumper насколько я знаю, просто позволяет быстро и удобно делать дамп базы или восставливать бэкап.
Re: Множественный INSERT
Все верно. В первом посте не было информация о промежуточной обработке. Вобщем тогда ответ yan тебе в помощь.Pulse писал(а):А Sypex Dumper насколько я знаю, просто позволяет быстро и удобно делать дамп базы или восставливать бэкап.
Re: Множественный INSERT
У меня была задача закидывать больше чем 100000 и реализовал ее так:
// Очень большой цикл с обработкой данных
$arrayName[] = array('serial' => $string[0], 'name' =>$string[1],'price'=>$string[2]); // Тут во время цикла собираем данные в массив (я собирал по 10000)
$builder=Yii::app()->db->schema->commandBuilder;
$command=$builder->createMultipleInsertCommand('table_name', $arrayName); // а тут за раз отрпавляем их все в базу
$command->execute();
unset($arrayName);
// Очень большой цикл с обработкой данных
Решение конечно не очень правильное для обработки больших объемов данных, но на коленке собраное и досих пор нормально работает
// Очень большой цикл с обработкой данных
$arrayName[] = array('serial' => $string[0], 'name' =>$string[1],'price'=>$string[2]); // Тут во время цикла собираем данные в массив (я собирал по 10000)
$builder=Yii::app()->db->schema->commandBuilder;
$command=$builder->createMultipleInsertCommand('table_name', $arrayName); // а тут за раз отрпавляем их все в базу
$command->execute();
unset($arrayName);
// Очень большой цикл с обработкой данных
Решение конечно не очень правильное для обработки больших объемов данных, но на коленке собраное и досих пор нормально работает
Re: Множественный INSERT
Спасибо за ответ!
Примерно так и я сделаю.
Примерно так и я сделаю.