|
MySQL.RU - Webboard
Вернуться
(Оптимизация) Пакетная вставка с помощью DBI? (Sergey) 22/06/2003 - 01:30:06
Re: (Оптимизация) Пакетная вставка с помощью DBI? (walrus) 23/06/2003 - 02:20:33
Re: Я понимаю что это дико выглядит.. (Sergey) 23/06/2003 - 10:26:23
Re: проблема не в дби.. (Sergey) 23/06/2003 - 13:12:16
> Original message text:
> From: Sergey - 22/06/2003 - 01:30:06
> Subject:(Оптимизация) Пакетная вставка с помощью DBI?
> -----------------
> Есть примитивная таблица (4 поля), в нее за раз надо перенести существенный объем данных - около 6000 записей вставить в нее..
>
> можно формировать для каждой записи свой запрси выполнять его в цикле, подобный подход меня не устраивает тем, что занимает не менее часа.
>
> while($case) {
> $sql="insert into mt1 (a,b,c,d) values ('$a','$b','$c','$d')";
> $sth=$dbh->prepare($sql);
> $sth->execute();
> ....
> }
>
> Как оптимизировать данный процесс? можно ли в цикле сгенирировать список запросов, а потом выполнить его за раз?
>
> Спасибо.
>
From: walrus - 23/06/2003 - 02:20:33
Subject:(Оптимизация) Пакетная вставка с помощью DBI?
-----------------
6000 записей из 4 полей и в течение часа? Это у вас какой компьютер, если не секрет? Что то очень медленно. На моем (Celeron 633) на такой таблице примерно (попробовал) 100000 записей залилось за 72 секунды.
Видимо что-то еще вы не сказали.
По существу:
1) Вы можете сделать один раз $sth=$dbh->prepare перед циклом, и потом в цикле $sth->execute. Это будет быстрее.
2) Вы можете одним запросом вставлять много записей. Это тоже получится быстрее. Типа
insert into mt1 (a,b,c,d) values ('1','1','1','1'),('2','2','2','2'),('3','3','3','3') и тд
[Это сообщение - спам!]
Последние сообщения из форума
Уважаемые посетители форума MySQL.RU!
Убедительная просьба, прежде чем задавать свой вопрос в этом форуме, обратите внимание на разделы:
- ответы на наиболее часто задаваемые вопросы - FAQ
- раздел документация
- раздел поиск по сообщениям форума и документации
Также, старайтесь наиболее подробно указывать свою ситуацию (версию операционной системы, версию MySQL,
версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
9216
|
|