in reply to bind_columns OR fetchall_arrayref

fetchall_arrayref is certainly not a good idea if you really have a large amount of data as it will put a big strain on the memory resources of your webserver.

I have an application which does a select on multiple joined tables for some combination of conditions out of about 80,000 rows and the largest pages take at most two seconds to render (including some dynamically made graphics and summary information on the data shown) through Template::Toolkit. The data is read with fetchrow_* methods.

The data is provided by the MySQL database in fractions of a second, most of the time is spent in processing the data and transmitting it to the client. Of course the database is fully indexed on all fields to be selected on.

As others have already suggested: first check where the real bottleneck is before you start optimising things which are already very fast.

CountZero

"If you have four groups working on a compiler, you'll get a 4-pass compiler." - Conway's Law