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


in reply to Re^3: Threads and DBD::SQLite?
in thread Threads and DBD::SQLite?

UPDATE: numbers are partly wrong; see further discussion lower down in this thread

I experimented a bit with this, on Centos 6.5. I had only a threaded perl 5.19.7 handy.

Initially I got similar (disappointing) results, but then I found two problems with the test program:

1. It turns out that after the "Create primary index"; block, a $dbh->commit is needed to get the index to be used/committed.

2. A (much) higher rowcount $N gives more interesting results. From around N$ = 10_000 and upwards, the threaded version *is* (much) faster.

For instance, for rowcount $N = 100_000:

$ perl 1067204.pl Using minimum thread stack size of 16384 at /home/aardvark/perl-5.19/l +ib/5.19.7/x86_64-linux-thread-multi/threads.pm line 49. Took 6.262891 seconds (for Populate db with 100000 records) Took 0.121979 seconds (for Create primary index) Took 0.905479 seconds (for Retrieve the whole lot) 100000
Took 0.099463 seconds (for Read all 100000 records using 4 threads)

So, it was a good approach after all.