+ -
当前位置:首页 → 问答吧 → 请教perl从Mysql抽取数据:Mysql client ran out of memory

请教perl从Mysql抽取数据:Mysql client ran out of memory

时间:2010-09-07

来源:互联网

我用perl写了个抽取数据的小程序,在oracle,sqlserver数据库上抽数据,从来没遇到过问题。但是在mysql上,只要数据量过大的,就会报错,这次我要抽取的一张表,大约800M,然后就报错了:Mysql client ran out of memory
  1. my $dbh = DBI->connect($dsnname,$user,$pwd) or errlog("connect err: $DBI::errstr");

  2.         $dbh->{LongReadLen} = 8000 * 1024;

  3.         my $sth = $dbh->prepare($sqlstatement) or errlog("prepare err: $dbh->errstr");
  4.         my $rv = $sth->execute() or errlog("execute err: $dbh->errstr");

  5.         while (@data = $sth->fetchrow_array())
复制代码
是不是mysql数据库,fetch的时候,会把查询结果集的所有数据都取到内存里面捏。。怎么这么傻,呵呵,希望各位给点建议,非常感谢  

作者: iuytr123   发布时间: 2010-09-07

参数设置问题吧

作者: yybmsrs   发布时间: 2010-09-07

请问是在哪儿设置呢?是Mysql的设置问题还是perl要限制arraysize类似的东西?

作者: iuytr123   发布时间: 2010-09-07