Главная страница


ru.perl

 
 - RU.PERL ----------------------------------------------------------------------
 From : Victor Wagner                        2:5020/400     22 Aug 2002  17:20:15
 To : Eugene Grosbein
 Subject : Re: DBI, DBD или MySQL?
 -------------------------------------------------------------------------------- 
 
 Eugene Grosbein <Eugene.Grosbein@f1.n5006.z2.fidonet.org> wrote:
 
 EG> 22 авг 2002, четверг, в 18:04 KRAST, Eugene Grosbein написал(а):
 
  EG>> Если пробую делать по man DBI (prepare, execute, fetch, fetch...),
  EG>> то вижу, что execute длится очень долго, причем похоже на то, что
  EG>> perl собирается всю базу в память засосать, прежде чем выйти из fetch.
  EG>> Как ему отвыкнуть? Я бы хотел по одной строке обрабатывать, в цикле
  EG>> fetch делая.
 
 EG> Да, забыл сказать - клиент и сервер на одной машине, 
 EG> работа через unix socket.
 Это зависит от устройства DBD, вернее от нижележащих библиотек.
 у PostgreSQL, и, насколько я знаю mySQL оно работает именно так -
 возвращает сразу весь результат запроса в виде одной большой структуры
 данных. У Oracle - так как тебе бы хотелось.
 
 У постгреса проблеам обходится посредством использования курсоров.
 
     BEGIN WORK;
   DECLARE liahona CURSOR FOR SELECT * FROM films;
 
   FETCH FORWARD 5 IN liahona;
 
 В перле это должно выглядеть как
 
 $dbh->{AutoCommit}=0;
 $dbh->do("DECLARE liahona CURSOR FOR SELECT ...");
 
 while
 (@row =$dbh->selecrow_array("FETCH FORWARD 1 IN Liahona")) {
 ...
 }
 
 А можно ли так в mySQL - не знаю.
 
 -- 
 http://www.communiware.ru                     http://www.ice.ru/~vitus
 --- ifmail v.2.15dev5
  * Origin: Leninsky 45 home network (2:5020/400)
 
 

Вернуться к списку тем, сортированных по: возрастание даты  уменьшение даты  тема  автор 

 Тема:    Автор:    Дата:  
 Re: DBI, DBD или MySQL?   Victor Wagner   22 Aug 2002 17:20:15 
Архивное /ru.perl/15178cbcd4199.html, оценка 1 из 5, голосов 10
Яндекс.Метрика
Valid HTML 4.01 Transitional