If you are running apache with mod_perl and if the site has more than a
couple of visitors an hour and you use Apache::DBI for connection
pooling, you can bet that you will speed up by using DBI. A lot.  A
whole lot.

On Wed, 2002-04-03 at 18:33, Peter Scott wrote:
> At 04:28 PM 4/3/02 -0500, Kevin Old wrote:
> >Hello all,
> >
> >I am a consultant brought in to manage and restructure some Perl scripts that
> >were written some time ago.  The programmer at that time was using the
> >following code to do a query from within a CGI page.
> >
> >      ${query} = "SELECT ccyymmddhh FROM inventory ORDER BY ccyymmddhh ;" ;
> >         open( INPUT, "echo \"${query}\" |
> >/usr/local/mysql/bin/mysql -A -q -N gso|" ) ;
> >         @{ccyymmddhh} = <INPUT> ;
> >         chomp( @{ccyymmddhh} ) ;
> >         close( INPUT ) ;
> 
> *Shudder*
> 
> >I think that I should clean this up and reprogram this to use DBD::mysql
> >rather than the way he does it here.
> 
> That's an understatement.
> 
> >Anyone have any idea if it would improve performance?
> 
> The only way to be sure is to try both ways, but... I would bet long odds 
> that the performance will be greatly improved.  The above has to fire off a 
> subprocess and build up and tear down a connection for each query.  If the 
> DBI way turns out to be slower, look me up at the Perl Conference and I'll 
> buy you a drink.  So, I suspect, will Tim Bunce :-)
> 
> >I'd love to hear from people that have gone doing it this way to using DBI.
> >
> >Obviously I can run benchmarks before and after and see which takes longer,
> >and I think that using DBI is not only much easier to read and manage, but
> >probably a little faster.  Just seeking the advice of others.
> 
> Go with easier to read and manage first.  The above code is NOT capable of 
> being reused in obvious ways (suppose $query contained quote marks or shell 
> metacharacters).
> 
> --
> Peter Scott
> Pacific Systems Design Technologies
> http://www.perldebugged.com
> 


Reply via email to