SQLite Forum

Fast way to insert rows in SQLite
Login
WITHOUT ROWID simply uses another typically heavier Index as the primary key in stead of the rowid. Unless this index is *also* an INTEGER PK it is guaranteed to be slower, and if it *is* an Integer PK, it should be close to the same speed as the row id, but possibly still marginally slower.

The WITHOUT ROWID optimization is really a space-saver where another PK must be present anyway. It should not be any faster[1].

Put it like this: If that was faster, the devs should immediately implement that as the new row_id mechanism!

[1] Note: If the without rowid optimization replaces a previous duo of row_id + PK to now only have the PK, then it is bound to be faster, but simply replacing a rowid with a previously non-existing PK, can never be faster.