/database-performance
Database and query performance, measured
I started my career building database performance tooling, and I have been tuning databases since. My approach: profile first, change one thing, measure again.
Architectural invariants
- No query gets tuned until a trace proves it is slow.
- Every index is a write tax; it needs a read path to justify it.
- Caches have budgets: TTL defaults and size limits per key prefix.
- Payload size is a cost line, so serialization is an architecture decision.
Proof in production
- Cut partner API response times 60% by removing expensive joins, partitioning indexes and pruning payloads.
- Fixed endpoint timeouts using SQL analysis, database performance tools and OpenTelemetry tracing.
- Reduced production cache memory 44% (peak utilization 94% → 56%) and built a shared client library with cluster-aware pooling and sane TTLs.
- Moved cache serialization from Java to Protobuf 3 with zero downtime, saving over $1M a year.
- Co-founded a SQL performance review committee; built storage growth prediction that was 70% more accurate.