SQLite Forum

Faster way to insert into WITHOUT ROWID table?
Login
You haven't said how that DB / table is used later. But If your use case is really as described,  
i.e. only fixed-size columns, then you can have random access into your data, by *direct indexing*,  
whether it on-disk or in-memory, if you implement your own virtual table (and indexing) on top of  
that *regular / tabular* data.

Might end up bigger that the SQLite DB, which uses [varints][VARINT], if you intergers are small.  
But the extra space is worth it, for direct random-access addressing, performance-wise.

A long time ago, I measured vtables over C++ std::unordered_map-like containers of structs,  
being 5x faster than equivalent regular in-memory SQLite tables. And that was even w/o direct  
addressing like in your use-case (node-based hash map, so each row is a separate alloc / address).

Short of the above, you've covered all the bases, from what you wrote. FWIW. --DD

[VARINT]: https://www.sqlite.org/fileformat.html#b_tree_pages