作者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
→ charleshu:fetchrow array 可以指定你要讀的筆數.一次不要讀太多筆 04/15 17:48
→ abcg5:是指用 $sth->fetchall_arrayref($slice, $max_rows) 來設定 04/20 20:01
→ abcg5:要一次讀多少個rows嗎?? 04/20 20:02