我正在使用Catalyst构建一个Perl网站。该网站将允许用户上传大量(100,000行或更多)文本文件进行处理。我需要将每一行转换为MySQL数据库中的一行。
我一直在使用Catalyst非常好的DBIC::Schema
模型,详见the tutorial:
$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);
然而,它不起作用。它只插入第一行。
有什么想法吗?