用mysql perl,非常慢,如何解决它

时间:2012-03-02 12:30:35

标签: mysql perl performance

我有一个非常小的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

1 个答案:

答案 0 :(得分:4)

这可以通过运行像

这样的查询完全在MySQL中解决
INSERT INTO
  newTable(field1,field2,...)
SELECT 
   field1, field2
FROM
   oldTable;