A couple more ideas (sparked by the 80,000) :
- Try binding the return values. e.g.
my $imei;
$rc = $sth_imei->bind_col(0,\$imei);
$sth_imei->execute();
$sth_imei->fetch();
print "IMEI : $imei\n";
- If you don't want to do that, at least use ->fetchrow_arrayref(). Otherwise, each
execute call has to create a new list for you. The _arrayref
gives you a ref. to a static array, so less copying.
- bind_param should take a colum number shouldn't it, not a
name, e.g. $sth_imei->bind_param(0,$rec[1])
Either of the first 2 should save time, given 80,000 iterations.
Finally, note that execute() can return '0E0' meaning 0 but true,
meaning no rows (and different to undef for errors).
May be worth checking for that explicitly.
I think I'm out of ideas now...
--
Brovnik