Same Data, Half the RAM: WizQl's Reworked Backend Benchmarked
WizQl Benchmark — Follow-up: Reworked Backend
Since the last benchmark about a month ago, WizQl shipped a completely reworked backend with even more features and bug fixes. We ran the same stress tests again.
> These results apply across all databases WizQl supports — the reworked backend is not Postgres-specific. Whether you're on MySQL, SQLite, or any other supported database, the same memory and performance characteristics carry over.
Test Environment
Client machine MacBook Air M2 — 8 GB RAM, 256 GB storage
Server Windows PC on local network running PostgreSQL via Docker
Table schema
id INTEGER -- sequential
name TEXT -- random name
balance INTEGER -- random integer
2 Million Rows
| Client | Load Time | Memory |
|---|---|---|
| TablePlus | 16.150s | 1.27 GB |
| WizQl | 16.10s | 592 MB |
Load time is now effectively equal. But the memory story changed dramatically — WizQl uses 592 MB vs TablePlus's 1.27 GB. That's less than half: a 2.1× reduction.
27 Million Rows
| Client | Load Time | Memory |
|---|---|---|
| TablePlus | 229s | 15.8 GB |
| WizQl | 370s | 6.06 GB |
At this scale, TablePlus loads faster, but the memory gap widens significantly. WizQl uses 6.06 GB vs TablePlus's 15.8 GB — 2.6× less memory for the same dataset.
Ceiling Test — WizQl Only
> WizQl loaded 262,400,000 rows and reached 25 GB before the system ran out of memory. No artificial cap was hit — it simply used what the machine had.
The Trade-off
The reworked backend made a clear architectural choice: trade some raw speed at extreme row counts for dramatically lower memory pressure.
- At 2M rows — near-identical performance at half the RAM.
- At 27M rows — WizQl is the only client that remains practical on a machine with less than 16 GB free.
Because the new backend operates at the driver level — not the query layer — these gains are available universally across every database WizQl connects to, not just Postgres.