【发布时间】:2011-03-26 01:41:35
【问题描述】:
我们的许多自动化流程都使用 perl,并且需要访问我们的 MySQL 数据库。我不想承认这一点,但直到最近,我们还没有真正对我们的大多数流程进行过多的基准测试。我们的一位开发人员使用以下伪代码设置了一个测试,以比较“使用 MySQL”与“使用 DBI”的性能:
for ($i = 1; $i <= 1000; $i++) {
pull and store all records in a 4,000 record table
}
结果: MySQL - 57s、56s、57s DBI - 43s, 42s, 43s
出于某种原因,我很惊讶地看到 DBI 的表现要好得多;考虑到我对这两个模块知之甚少。我意识到运行的基准测试可能存在一些问题,并且每个人的设置/结果都会非常糟糕,但我很好奇其他人是否经历过使用 DBI 与 MySQL 模块的任何形式的性能提升。
【问题讨论】:
-
DBI 是 Perl 的事实上的数据库模块。我不知道任何其他 MySQL 模块。甚至 Oracle 也没有提及任何其他模块:dev.mysql.com/doc/refman/5.1/en/apis-perl.html
-
您能否给我们您所指的确切模块的全名和 URL?
-
我不完全确定如何找到有关它们的任何信息(例如 URL 等),但无论它们的路径是否值得:/usr/lib64/perl5/vendor_perl/5.8.8/ x86_64-linux-thread-multi/Mysql.pm 和 /usr/lib64/perl5/vendor_perl/5.8.8/x86_64-linux-thread-multi/DBD/mysql.pm
-
是的,我很困惑,尤其是考虑在 cpan 中搜索 mysql 会首先返回它的 DBI DBD。
-
如果没有更多信息,该基准毫无意义。跑了多少?服务器负载? # 连接数?内存利用率百分比?
标签: mysql perl performance module dbi