2010-08-04 4 views
0

많은 자동화 된 프로세스는 perl을 사용하며 MySQL 데이터베이스에 액세스해야합니다. 나는 그것을 인정하는 것을 싫어하지만, 최근까지 우리는 대다수의 프로세스를 벤치마킹하지 못했습니다. 우리의 DEVS 설정 중 하나 테스트는 다음 의사와 함께 "DBI를 사용하여"대 "MySQL을 사용"의 성능을 비교하기 :Perl 모듈 : 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 모듈을 사용하여 다른 사람들이 어떤 종류의 성능 향상을 경험했는지 궁금합니다. 벤치 마크에서 여러 가지 문제가있을 수 있습니다.

+0

DBI는 Perl의 사실상 데이터베이스 모듈입니다. 나는 다른 어떤 MySQL 모듈도 알지 못한다. 오라클조차도 다른 모듈에 대해서는 언급하지 않습니다 : http://dev.mysql.com/doc/refman/5.1/en/apis-perl.html – jmz

+0

언급하고있는 정확한 모듈의 전체 이름과 URL을 제공해 주시겠습니까? 에? –

+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

답변

3

그가 말한 MySQL 모듈을 발견했습니다. was 부분의 DBD::mysql 부분입니다. mSQL을-MySQL을 모듈 1.19_10 M (Y) sqlPerl 더 이상 별도의 모듈로를

인용한다. 대신 DBI 드라이버 을 사용하여 에뮬레이트됩니다. DBI로 새 코드를 직접 구현하는 것이 좋습니다.

따라서 에뮬레이션 레이어가 실적 손실의 원인입니다. 또한 MySQL.pm은 DBD :: mysql의 4.x 줄에서 제거되었으며 2006 년에 마지막으로 나타났습니다.

+0

링크가 작동하지 않습니다. 내가 찾은 http://search.cpan.org/~rudy/DBD-mysql-2.9008/lib/Mysql.pm – vol7ron

+0

나는 그것을 이미 보았고 더 많은 링크를 추가했다. – xenoterracide

관련 문제