100000 TPS over a billion rows: the unreasonable effectiveness of SQLite 02 Dec 2025
SQLite doesn't have MVCC! It only has a single writer! SQLite is for phones and mobile apps (and the occasional airliner)! For web servers use a proper database like Postgres! In this article I'll go over why being embedded and a single writer are not deficiencies but actually allow SQLite to scale so unreasonably well.
Prelude
For the code examples I will be using Clojure. But, what they cover should be applicable to most programming language.
The machine these benchmarks run on has the following specs:
MacBook Pro (2021)
Chip: Apple M1 Pro
Memory: 16 GB
These benchmarks are not meant to be perfect or even optimal. They are merely to illustrate that it's relatively easy to achieve decent write throughput with SQLite. Usual benchmark disclaimers apply.
Defining TPS
... continue reading