加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

如何在Perl中提高多个数据库查询的效率?

发布时间:2020-12-15 23:34:54 所属栏目:大数据 来源:网络整理
导读:我有一个驻留在多个方法中的查询,每个方法(查询)可以包含多个参数.我正在尝试减少文件大小和行数,使其更易于维护.以下是这样的事件: $sql_update = qq { UPDATE database.table SET column = 'UPDATE!' WHERE id = ? };$sth_update = $dbh-prepare($sql_upd
我有一个驻留在多个方法中的查询,每个方法(查询)可以包含多个参数.我正在尝试减少文件大小和行数,使其更易于维护.以下是这样的事件:

$sql_update = qq { UPDATE database.table
                    SET column = 'UPDATE!'
                   WHERE id = ?
                };

$sth_update = $dbh->prepare($sql_update);

if ($dbh->err) {
    my $error = "Could not prepare statement. Error: ". $dbh->errstr ." Exiting at line " . __LINE__;
    print "$errorn";
    die;
}

$sth_rnupdate->execute($parameter);

if ($dbh->err) {
    my $error = "Could not execute statement. Error: ". $dbh->errstr ." Exiting at line " . __LINE__;
    print "$errorn";
    die;
}

这仅是一个示例,然而,存在各种其他选择示例,其仅包含要传递的一个参数,但是也存在具有两个或更多个参数的一些参数.我想我只是想知道是否可以将这一切封装到一个函数/方法中,传入一个参数数组,如何将参数填充到execute()函数中?

如果这是可能的,我可以编写一个方法,只需传入SQL查询和参数,并获取对提取的记录的引用.这听起来安全吗?

解决方法

如果行数和可维护代码是您唯一的目标,那么您最好的选择是使用几个可用的精细ORM框架/库中的任何一个. Class::DBI和 DBIx::Class是两个很好的起点.为了以防万一,你担心花费额外的时间来学习这些模块 – 不要:我只花了一个下午才开始并提高工作效率.以Class :: DBI为例,您的示例只是一行:

Table->retrieve(id => $parameter)->column('UPDATE!')->update;

这些框架唯一的缺点(如果是这样)是非常复杂的SQL语句需要编写自定义方法学习,这可能需要一些额外的时间(不要太多)来解决.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读