2010-08-04 90 views
0

很多我們的自動化進程使用perl,需要訪問我們的MySQL數據庫。我不願意承認這一點,但直到最近我們還沒有對我們的大多數流程做過很多的基準測試。我們的一個開發者設置的測試的 「使用MySQL」 的性能比較與 「使用DBI」 具有以下僞代碼:Perl模塊:MySQL vs 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模塊獲得了任何性能增益。

+0

DBI是事實上的Perl數據庫模塊。我不知道有任何其他MySQL模塊。即使Oracle不提及任何其他模塊:http://dev.mysql.com/doc/refman/5.1/en/apis-perl.html – jmz 2010-08-04 12:58:56

+0

您能否給我們提供您提到的具體模塊的全名和URL至? – 2010-08-05 21:56:34

+0

我並不確定如何找到關於它們的任何信息(例如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 – malonso 2010-08-05 22:09:45

回答

3

我找到了MySQL模塊他指的是was部分DBD::mysql dist。引用它

作爲MSQL MySQL的模塊1.19_10 M(Y)sqlPerl是不再是一個單獨 模塊。而是使用DBI驅動程序模擬 。鼓勵您直接使用 DBI強烈推薦 。

因此,仿真層是您的性能損失的原因。此外,MySQL.pm已在4.x行DBD :: mysql中刪除,它最後出現在2006年。

+0

您的鏈接已死亡。我發現http://search.cpan.org/~rudy/DBD-mysql-2.9008/lib/Mysql.pm – vol7ron 2010-08-06 03:26:29

+0

我看到已經修復並添加了一些鏈接 – xenoterracide 2010-08-06 03:27:59