连接数据库Perl

Ame*_*mey 5 mysql database perl performance

我使用以下代码连接到mysql数据库:

my $dbh = DBI->connect("DBI:mysql:test:localhost", $user, $pass)
    or die $DBI::errstr;
my $sqlQuery  = $dbh->prepare($query) 
    or die "Can't prepare $query: $dbh->errstr\n"; 
my $rv = $sqlQuery->execute 
    or die "can't execute the query: $sqlQuery->errstr";

while (my @row= $sqlQuery->fetchrow_array()) {
    # do something;
}
Run Code Online (Sandbox Code Playgroud)

我的疑问是:直到我的应用程序与小型数据库交互时才会好.但是,当我将此应用程序移动到数据库大小可能达到100 GB的实时环境时,此代码可能会导致性能问题.实际上我要问的是,在线 -

@row= $sqlQuery->fetchrow_array();
Run Code Online (Sandbox Code Playgroud)

将Perl复制整个表内容并将其转储到变量中.如果是,是否会对我的应用程序以及数据库服务器造成重大性能问题?

ber*_*rdt 3

在行中:

@row= $sqlQuery->fetchrow_array();
Run Code Online (Sandbox Code Playgroud)

数据库一次会将一行返回给 perl,如果与大型数据库交互,您不会将查询的整个结果集转储到变量中。

$arrRef = $sqlQuery->fetchall_arrayref();
Run Code Online (Sandbox Code Playgroud)

另一方面..