Множественный INSERT

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Ответить
Аватара пользователя
Pulse
Сообщения: 32
Зарегистрирован: 2014.05.15, 14:33

Множественный INSERT

Сообщение Pulse »

Требуется сделать множественный инсерт в базу. Записей порядка более 100 000, какое решение лучше для такой задачи? Смотрел в гайде по Yii в разделе DAO, для множественного инсерта никаких методов готовых не нашёл.
mozart
Сообщения: 15
Зарегистрирован: 2012.02.20, 20:32

Re: Множественный INSERT

Сообщение mozart »

LOAD DATA INFILE
yan
Сообщения: 942
Зарегистрирован: 2011.03.23, 09:28
Откуда: Уфа

Re: Множественный INSERT

Сообщение yan »

Pulse писал(а):Требуется сделать множественный инсерт в базу. Записей порядка более 100 000, какое решение лучше для такой задачи? Смотрел в гайде по Yii в разделе DAO, для множественного инсерта никаких методов готовых не нашёл.
апи надо смотреть http://www.yiiframework.com/doc/api/1.1 ... and-detail
Аватара пользователя
Pulse
Сообщения: 32
Зарегистрирован: 2014.05.15, 14:33

Re: Множественный INSERT

Сообщение Pulse »

Спасибо за ответы, буду пробовать.
Аватара пользователя
SiZE
Сообщения: 2817
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Множественный INSERT

Сообщение SiZE »

Если разово, то глянь http://sypex.net/ =)
Аватара пользователя
Pulse
Сообщения: 32
Зарегистрирован: 2014.05.15, 14:33

Re: Множественный INSERT

Сообщение Pulse »

Sypex Dumper юзал, полезная штука, но в моей задаче не подходит. У меня задача немного другого плана: мне надо взять данные из таблицы, пересчитать их по определённому алгоритму и записать в новую таблицу. А Sypex Dumper насколько я знаю, просто позволяет быстро и удобно делать дамп базы или восставливать бэкап.
Аватара пользователя
SiZE
Сообщения: 2817
Зарегистрирован: 2011.09.21, 12:39
Откуда: Perm
Контактная информация:

Re: Множественный INSERT

Сообщение SiZE »

Pulse писал(а):А Sypex Dumper насколько я знаю, просто позволяет быстро и удобно делать дамп базы или восставливать бэкап.
Все верно. В первом посте не было информация о промежуточной обработке. Вобщем тогда ответ yan тебе в помощь.
bodiss
Сообщения: 11
Зарегистрирован: 2013.09.26, 18:31

Re: Множественный INSERT

Сообщение bodiss »

У меня была задача закидывать больше чем 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);
// Очень большой цикл с обработкой данных

Решение конечно не очень правильное для обработки больших объемов данных, но на коленке собраное и досих пор нормально работает
Аватара пользователя
Pulse
Сообщения: 32
Зарегистрирован: 2014.05.15, 14:33

Re: Множественный INSERT

Сообщение Pulse »

Спасибо за ответ!
Примерно так и я сделаю.
Ответить