4,534
qail-pg (cached) q/s
27%
Faster than SQLx
12%
Faster than SeaORM
Results
| Driver | Queries/Sec | Latency | vs qail-pg cached |
|---|---|---|---|
| qail-pg (cached) ⭐ | 4,534 q/s | 221 μs | — |
| SeaORM | 4,032 q/s | 248 μs | 12% slower |
| SQLx | 3,573 q/s | 280 μs | 27% slower |
| qail-pg (fast) | 3,531 q/s | 283 μs | 28% slower |
| qail-pg (basic) | 2,640 q/s | 379 μs | 72% slower |
Optimizations Applied (v0.14.4)
- Zero-Alloc Encoding: Reusable
sql_bufandparams_bufon PgConnection eliminate heap allocations - LRU Statement Cache: Bounded cache (1000 max) with auto-eviction — prevents memory leaks
- Parameterized LIMIT/OFFSET: Uses $N parameters instead of embedded values — same SQL = same cache entry
- SQL Hash Caching: Prepared statements cached by SQL hash — Parse message skipped on cache hits
Test Query
WITH high_earners AS (
SELECT * FROM employees WHERE salary > 80000
)
SELECT e.*, d.name as dept_name
FROM high_earners e
JOIN departments d ON e.department_id = d.id
WHERE e.status = 'active'
ORDER BY e.salary DESC
LIMIT 100 Reproduce
# Clone and run git clone https://github.com/qail-io/qail.git cd qail cargo run --example orm_benchmark --release