首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类::DBI-它加载所有表吗?

类::DBI-它加载所有表吗?
EN

Stack Overflow用户
提问于 2018-06-27 19:21:13
回答 1查看 77关注 0票数 1

我们有一个包含大量表的MySQL数据库。不幸的是,2018年我们仍然使用Perl CGI。因此,加载脚本的时间是必不可少的。

DBIx::Class被我排除在外,因为它加载了大约1.6秒(很长时间因为它加载了DB的所有表的Perl定义),这显然太多了。

Class::DBI加载的速度有多快?我的主要问题是: Perl是在使用DBIx::Class时加载所有可用表的信息(就像Class::DBI那样),还是只为实际使用的这些表加载Perl定义?

以下是加载1.6秒的DBIx::Class代码:

代码语言:javascript
复制
#!/usr/bin/perl

package MyApp::Schema;
use lib '.../ORMs/dbix-class';
use base qw/DBIx::Class::Schema/;

__PACKAGE__->load_namespaces();

1;

(模式是自动生成的。)

有什么办法让它更快吗?如何在不加载所有表的情况下使用它?

EN

回答 1

Stack Overflow用户

发布于 2018-06-28 10:42:36

我真的不推荐类::DBI。已经有12年没有维护了--每个人都有很好的理由改用DBIx::Class

我强烈建议您解决导致您仍然使用CGI的问题。例如,是什么阻止您使用CGI::模拟::PSGI将CGI代码转换为PSGI应用程序,然后您可以将这些应用程序部署在像FastCGI这样的持久环境中,或者更好地说,它是一个独立的服务,然后可以使用nginx访问?任何这些解决方案都意味着DBIx::类加载时间不再是问题。

显然,我不知道是什么让你和CGI联系在一起的。但是,在我的经验中,搬到PSGI解决方案往往比人们预期的要容易,这无疑会让你处于一个更好的位置。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51070019

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档