저는 Catalyst를 사용하여 Perl 웹 사이트를 구축하고 있습니다. 사이트에서는 사용자가 처리를 위해 큰 (100,000 줄 이상) 텍스트 파일을 업로드 할 수 있습니다. 각 행을 MySQL 데이터베이스의 행으로 변환해야합니다.촉매제 모델에 여러 항목 추가하기
the tutorial에 설명 된대로 내가, 촉매의 아주 좋은 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);
그러나, 그것은 작동하지 않습니다. 첫 번째 행만 삽입합니다.
아이디어가 있으십니까?
+1, 문서 링크를 이용해 주셔서 감사합니다. 나는'채우기 '를 시도 할 것이다. –
이 문제가 해결되었습니다. 삽입 작업은 30 분에서 몇 초 사이에 이루어졌습니다. 귀하의 도움을 많이 주시면 감사하겠습니다! –