in reply to DBI: How to update 150K records efficiently

If you haven't benchmarked it yet, try this:
my $sth = $dbh->prepare('UPDATE myTable SET va = ?, vb = ? WHERE vc = +?'); while (my $record = <$input>){ my @values = (split(/\|/,$record))[1,3,5]; $sth->execute(@values); } $sth->finish()

At least it avoids generating hashes for everything, and it uses a cached "prepared statement".

Replies are listed 'Best First'.
Re^2: DBI: How to update 150K records efficiently
by Juerd (Abbot) on Mar 31, 2008 at 15:16 UTC

    Oh, but the OP's code also uses a cached prepared statement. DBIx::Simple handles this internally. The problem is that before it can access the cache, it has to generate the query string all over :)

    Juerd # { site => 'juerd.nl', do_not_use => 'spamtrap', perl6_server => 'feather' }