With an optimistic VFS, sequentially increasing ROWIDs is a primary source of contention, and causes significant INSERT slowdown in my benchmark. We should provide a table-level option to allocate ROWIDs randomly.
This is possible in upstream SQLite by having a special row with rowid == max(int64). But not all applications like this special row.
The syntax might look like the WITHOUT ROWID table one:
CREATE TABLE t (...) RANDOM ROWID;
With an optimistic VFS, sequentially increasing ROWIDs is a primary source of contention, and causes significant INSERT slowdown in my benchmark. We should provide a table-level option to allocate ROWIDs randomly.
This is possible in upstream SQLite by having a special row with
rowid == max(int64). But not all applications like this special row.The syntax might look like the
WITHOUT ROWIDtable one: