Модули Perl: MySQL против DBI - PullRequest
       6

Модули Perl: MySQL против DBI

0 голосов
/ 04 августа 2010

Многие наши автоматизированные процессы используют perl и нуждаются в доступе к нашим базам данных MySQL. Мне неприятно это признавать, но до недавнего времени мы практически не проводили сравнительный анализ с большинством наших процессов. Один из наших разработчиков разработал тест для сравнения производительности «use MySQL» и «use DBI» со следующим псевдокодом:

for ($i = 1; $i <= 1000; $i++) {
  pull and store all records in a 4,000 record table
}

Результаты: MySQL - 57 с, 56 с, 57 с DBI - 43 с, 42 с, 43 с

Почему-то я был удивлен, увидев, что DBI работает намного лучше; учитывая, как мало я знаю об одном из модулей. Я понимаю, что, скорее всего, с выполненным тестом не все в порядке и что у всех очень хорошие настройки / результаты, но мне было любопытно, испытали ли другие какие-либо улучшения производительности при использовании DBI против модуля MySQL.

1 Ответ

3 голосов
/ 06 августа 2010

Я нашел модуль MySQL , на который он ссылается, он был частью DBD :: mysql dist. Цитировать это

По состоянию на Msql-Mysql-модули 1.19_10 M (y) sqlPerl больше не является отдельным модуль. Вместо этого он эмулируется с помощью драйверы DBI. Вы сильно рекомендуется реализовать новый код с DBI напрямую.

Таким образом, слой эмуляции является причиной потери производительности. Кроме того, MySQL.pm был удален в строке 4.x DBD :: mysql, последний раз он появлялся в 2006 году.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...