Maybe you could explain why one would use "without rowid" in the first place.
I get saving 8 bytes per row seems attractive, but the tradeoff is not explained.
I get saving 8 bytes per row seems attractive, but the tradeoff is not explained.
The tradeoff is what the benchmark is hitting. Once the table is physically ordered by the key, a random v4 scatters every insert across the tree and you pay for the page splits. A plain rowid table keeps that churn in the secondary index, which is just the key plus a rowid, while the table itself stays append-ordered. So it only really pays off when the key is something you look up directly and is roughly sequential, which is why v7 comes back near baseline.