Perl с MySQL, ужасно медленно, как это исправить - PullRequest
0 голосов
/ 02 марта 2012

У меня есть очень маленький 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 Ответ

4 голосов
/ 02 марта 2012

Это, вероятно, можно полностью решить в MySQL, запустив запрос, подобный

INSERT INTO
  newTable(field1,field2,...)
SELECT 
   field1, field2
FROM
   oldTable;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...