我正在使用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;
答案 0 :(得分:2)
最佳选择是使用prepared statements;有了这个,一旦你编译了语句,只需要在每次需要运行查询时通过线路发送参数。
此处的示例显示了如何执行简单的准备工作,如果您要反复使用相同的查询,则应保留$sth
,您可以继续使用新的$sth->execute()
变量。减少网络遍历的原因是因为每次运行$sth->execute($var)
时都不会发送查询,而只是传递准备好的语句的ID和进入{{1的变量占位符。
?