Как сжать данные с помощью Perl DBI с MySQL - PullRequest
0 голосов
/ 30 марта 2011

Я использую соединение perl dbi для удаленного извлечения данных. Я надеюсь сжать данные, если это возможно. Есть ли способ сделать сжатие файлов по сети с помощью Perl DBI для MySQL?

Вот мой фрагмент для получения данных:

     my $sth = $dbh->prepare("SELECT UUID(), '$node', 1, 2, 3, 4, vts FROM $tblist");
     $sth->execute();
     while (my($uid, $hostnm,$1,$2,$3,$upd,$vts) = $sth->fetchrow_array() ) { 
       print $gzip_fh "rec^A$uid^Ehost^A$hostnm^E1^A$1^E2^A$2^E3^A$3^E4^A$upd^Evts^A$vts^D";
     }
     $sth->finish;

1 Ответ

2 голосов
/ 30 марта 2011

Лучшим вариантом будет использование подготовленных выписок ; с этим, после того, как вы скомпилировали оператор, вам просто нужно будет посылать аргументы по сети каждый раз, когда вам нужно выполнить запросы.

В приведенном здесь примере показано, как выполнить простую подготовку. Если вы собираетесь использовать один и тот же запрос снова и снова, вы должны оставить свой $sth, который вы можете продолжать вызывать $sth->execute() с новыми переменными. Причина, по которой это сокращает ваш сетевой обход, заключается в том, что вы не отправляете запрос каждый раз, когда запускаете $sth->execute($var), вместо этого вы просто передаете идентификатор для подготовленного оператора и переменные, которые помещаются в заполнители ?.

$sth = $dbh->prepare("select * from table where column=?");
$sth->execute($var);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...