Assuming you have tying errors, the index <code>(list_id, modified, item_id)</code> should make the <code>SELECT</code> far faster. The difference between having it and not having it should be *very* noticeable. If this is not happening for you, something is wrong with your database. Using the sqlite shell tool do this: Delete all indexes. Use <code>.timer on</code>. Run the query without any indexes. Create that index. Then run <code>ANALYZE</code>. It's just a SQLite command you execute like <code>CREATE INDEX</code>. Then submit your query again and check whether the times have changed. Post the timings for us to check.