Новости
Документация
Download
Webboard
Поиск
FAQ/ЧаВо
Обратная связь




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, версию программного обеспечения, по которому возникает вопрос, текст возникающих ошибок, и др.)
Помните, чем конкретнее Вы опишете ситуацию, тем больше шансов получить реальную помощь.
 Имя:
 E-mail:
 Тема:
 Текст:
Код подтверждения отправки: Code
9216



РЕКЛАМА НА САЙТЕ
  Создание сайтов | |