Think Build Implement Repeat
London, UK +44 7367 067226
WhatsApp FOLLOW f in X
Python & Django

What Happens as Usage and Data Grow

Last updated:

Data volume, not user count

Django applications rarely slow down because of concurrent users. They slow down because a query that scanned ten thousand rows now scans a million.

Applications frequently get slower with no change in usage at all, purely because the data grew past what the original queries assumed.

The order of work

  1. Fix query multiplication — lazy loading in loops
  2. Add missing indexes on filtered and joined columns
  3. Move reporting to a replica or aggregate tables
  4. Cache what remains genuinely expensive
  5. Then add capacity, if still needed

Archive what is no longer in use

Most business applications keep everything indefinitely because nobody decided otherwise. Moving old records out keeps the working set small and every query fast.

It also makes backups faster and restores quicker, which matters more than it sounds during an incident.

Then horizontal capacity

StepWhen
Bigger serverSimplest, works for a long time
Read replicaReporting affecting the application
Multiple application serversConcurrency limits reached
Separate workersBackground work competing with web
ShardingRarely, and it is a large step

Watch the connection pool

Application server processes multiplied by connection pool size must stay within the database's connection limit. Exceeding it under load produces confusing intermittent failures.

It is a simple calculation and it is frequently the cause of problems that look like something more complicated.

Frequently asked questions

How many users can Django handle?

With sensible queries, far more than most businesses have. Concurrency is rarely the constraint at business scale.

Will moving to the cloud help?

It makes adding capacity easier and does not fix a query problem. Fix the queries first.

When do we need a read replica?

When reporting queries affect the application. That is usually the first genuine architectural step.

Is archiving worth it?

Once tables reach millions of rows, frequently the cheapest performance improvement available.

Keep reading

Application getting slower as data grows?

That is queries and indexes, not capacity. Happy to find where the time goes.

Book a free 30-minute call Get a project estimate WhatsApp us

Related services

What we build for problems like this one

Custom Software DevelopmentWeb DevelopmentMachine Learning