作者abcg5 (nothing)
看板Perl
标题[问题] DBI SELECT 一问
时间Tue Apr 13 14:59:58 2010
问题如下!
###########################
前面宣告省略...
$q=qq[ SELECT `content` FROM A_Table ];
$sth=$dbh->prepare($q);
unless($sth->execute) { die "$!\n"; }
while(my $content = $sth->fetchrow_array()){
...
}
或是用
my( $content );
$sth->bind_columns( \$content );
while($sth->fetch()){
...
}
的方式读取资料库中的资料时!
因为这个table有很多资料!
而全部的`content`加起来所占空间不小!
本来我以为$sth->fetch()和$sth->fetchrow_array()
是类似filehandle一样,并不会占用大量的空间!
但好像是我误解了!只要执行这个程式!
发现连unless($sth->execute) { die "$!\n"; }
都没执行完,就占去很大的记忆体空间~
所以我想问有没有办法可以依序地读一笔资料的`content`出来处理
直到读完整个资料库!!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.116.245.199
1F:→ charleshu:fetchrow array 可以指定你要读的笔数.一次不要读太多笔 04/15 17:48
2F:→ abcg5:是指用 $sth->fetchall_arrayref($slice, $max_rows) 来设定 04/20 20:01
3F:→ abcg5:要一次读多少个rows吗?? 04/20 20:02