By default, sqlite3 will use a file to store temporary tables and indices. It does this by referencing the SQLITE_TEMP_STORE preprocessor macro. As long as SQLITE_TEMP_STORE can be overridden, running PRAGMA temp_store=MEMORY; will tell sqlite3 to store these temporary tables and indices in memory instead of a file.

$ sqlite3

sqlite> PRAGMA temp_store;  
0

sqlite> PRAGMA temp_store = MEMORY;

sqlite> PRAGMA temp_store;  
2  

Note that any existing temporary tables will be deleted as soon as the pragma setting is modified.