title: Which is faster in SQLite in memory databases: no indexes, loading into an indexed table or building the index after load?
body: <p>I'm loading a big dataset, about 9Gb into a ":memory:" database using SQLite. Right now, I have a python script that loads the data from .csv files (doing some other stuff on a line by line basis). I then need to do some joins on two big tables. Will indexing the columns I'm joining on make a difference if the database is in-memory? If so, is it better to create the table with an index before loading data into it, or build an index just before the join? And finally, will it make a difference speed-wise if I specify types for the columns?</p>