我有一个非常小的perl脚本,从原始表中提取一列以形成一个新表,并按顺序生成关系表
$sqr->$conn->prepare("select id, authors from paper");
$sqr->execute();
while(@row = $sqr->fetchrow_array()) {
paper_id = $row[0];
@author_arr = someExtractFunc($row[1]);
for (@author_arr) {
author_id = insertAuthor($_);
insertAuthorPaper(author_id, paper_id); # this is the relation_table between author and paper
}
}
我有80,000张纸,大约240,000位作者,这个脚本运行得非常慢,任何人都可以告诉我为什么并给我一些建议吗?
paper
id authors title
author
id name
author_paper
id author_id paper_id
答案 0 :(得分:4)
这可以通过运行像
这样的查询完全在MySQL中解决INSERT INTO
newTable(field1,field2,...)
SELECT
field1, field2
FROM
oldTable;