As an answer on my question: Is it normal that sqlite.fetchall() is so slow? it seems that fetch-all and fetch-one can be incredibly slow for sqlite.
As I mentioned
From reading this question, it sounds like you could benefit from using the APSW sqlite module. Somehow you may be victim of your sqlite module causing your query to be executed in some less performant manner.
I was curious so I tried using apsw myself. It wasn't too complicated. Why don't you give it a try?
To install it I had to:
Have the installation package fetch the latest sqlite amalgamation.
python setup.py fetch --sqlite
Build and install.
sudo python setup.py install
Use it in place of the other sqlite module.
import apsw
<...>
conn = apsw.Connection('foo.db')