我正在使用 Catalyst 构建一个 Perl 网站。该站点将允许用户上传大型(100,000 行或更多)文本文件进行处理。我需要将每一行转换为 MySQL 数据库中的一行。
我一直在使用 Catalyst 非常好的DBIC::Schema
模型,如教程中所述:
$c->model('DB::Book')->create({
title => $title,
rating => $rating,
});
这会在适当的数据库中插入一行。但是,一次插入数万行的速度太慢了。有没有办法使用这个接口在一个查询中插入多行?
从文档中确定应该很简单,但我无法弄清楚create()
记录在哪里。
我已经尝试了明显的哈希引用数组:
my @rows = (
{ foo=>1,bar=>2 },
{ foo=>2,bar=>3 }
);
$c->model('DB::MyTable')->create(@rows);
但是,它不起作用。它只插入第一行。
有任何想法吗?