You may want to check into controlling the AutoCommit attribute of the DBI connection. (This relates to the notion of transaction handling mentioned above.) I know from personal experience (on a mirrored MySQL server) that AutoCommit being on vs. off (and issuing a commit(), say, every thousand updates or so, instead of on every update) can make a major difference in speed (esp. on a mirrored server).