http://www.perlmonks.org?node_id=153833


in reply to Up for Critique

A quick back-of-the-envelope shows that you're taking about 1/2 second on average to process a record.

I agree that a big chunk of time is going to database overhead. Assuming you have fields correctly indexed, I can think of two things that might help:

  1. MySql provides a DELAYED option for INSERT (documented here), which makes the INSERT faster by delaying disk writes. This can be risky. If your script is the only one adding to the database, and you're reasonably assured that the machine won't crash in mid run, try it.

  2. Look for opportunities to preload data for testing, rather than querying for data at runtime. Tests like   SELECT ac_id FROM achroms WHERE ac_id = ? can be done faster in memory. Your start-up time will take a hit, but you can amortize that hit over lots of records, and eventually you'll be ahead of the game.