Our first move when a DB gets slow isn't a bigger server — it's a profiler.
The order:
Measure — find the few queries causing most of the pain.
Index — kill full-table scans on hot queries.
Kill the N+1 — batch / eager-load.
Cache heavy reads — stop recomputing stable answers.
Read replicas — only once genuinely read-heavy + queries efficient.
Sharding — only when truly necessary (lasting complexity cost).
Most "we need a bigger database" moments are really "fix one query." Replicating an inefficient query just buys more expensive inefficiency.
Scaling your database? → devxhub.com
Top comments (0)