我正在使用 perl dbi 连接远程提取数据。如果可能的话,我希望压缩数据。 有没有办法使用 Perl dbi for 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;
最佳答案
最好的选择是使用 prepared statements ;这样,一旦编译了语句,您只需在每次需要运行查询时通过网络发送参数即可。
这里的示例展示了如何执行简单的准备,如果您要一遍又一遍地使用相同的查询,您应该保留您的 $sth
,您可以继续调用 $ sth->execute()
使用新变量。这减少了网络遍历的原因是因为您每次运行 $sth->execute($var)
时都不会发送查询,而只是传递准备好的 ID语句以及进入 ?
占位符的变量。
$sth = $dbh->prepare("select * from table where column=?");
$sth->execute($var);
关于mysql - 如何使用 perl dbi 和 mysql 压缩数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5480882/