我们有一个包含大量表的 MySQL 数据库。不幸的是,在 2018 年,我们仍然使用 Perl CGI。所以脚本的加载时间是必不可少的。
DBIx::Class
被我排除了,因为它加载了大约 1.6 秒(这么长,因为它为数据库的所有表加载 Perl 定义)显然太多了。
Class::DBI
加载速度有多快?我的主要问题:当我们使用 Perl 时是否会加载有关所有可用表的信息(就像DBIx::Class
那样),Class::DBI
或者它是否仅为我们实际使用的这些表加载 Perl 定义?
以下是DBIx::Class
加载 1.6 秒的代码:
#!/usr/bin/perl
package MyApp::Schema;
use lib '.../ORMs/dbix-class';
use base qw/DBIx::Class::Schema/;
__PACKAGE__->load_namespaces();
1;
(架构是自动生成的。)
有没有办法让它更快?如何在不加载所有表的情况下使用它?