mysql - 连接到数据库 Perl

标签 mysql database performance perl

我正在使用以下代码连接到 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;
}

我的疑问是:在我的应用程序与小型数据库交互之前一切正常。但是,当我将此应用程序移动到数据库大小可能为 100 GB 的实时环境时,此代码会导致哪些性能问题。实际上我要问的是,在线 -

@row= $sqlQuery->fetchrow_array();

Perl 会复制整个表的内容并将其转储到变量中。如果是,它不会对我的应用程序和数据库服务器造成严重的性能问题吗?

最佳答案

行内:

@row= $sqlQuery->fetchrow_array();

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

$arrRef = $sqlQuery->fetchall_arrayref();

另一方面..

关于mysql - 连接到数据库 Perl,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11383015/

相关文章:

mysql - 帮助数据库建模

javascript - 我应该连接我的 Javascript 库的依赖项吗?

python - 加速一个计算巨大数组中邻居平均值的程序

c# - Wpf 数据虚拟化

MySQL 从相关表中获取时间点总数

php - 当无法识别 mysql(phpmyadmin) 中的 to_date 函数时,如何修复错误?

php - 我正在尝试将 3 年添加到从我的数据库返回的日期

MySQL 查询浏览器工具和 UTF 8 数据错误(?)

ios - 如何将已填充的 SQLite 数据库与 SharkORM 结合使用

ruby-on-rails - 在 Heroku 上的 Rails 应用程序之间共享用户数据和登录信息