|
|
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) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/15178cbcd4199.html, оценка из 5, голосов 10
|