Skaliere in Stufen: Read Replicas + Caching für Reads zuerst, dann Sharding (Vitess) für Writes - und ergänze Connection Pooling vor allem anderen, denn es ist die günstigste 10x. Reads und Writes skalieren unterschiedlich, also greife nicht am ersten Tag zu Sharding.
┌─▶ Cache (Redis) ── hit ──▶ return
App ─▶ Pool(PgBouncer/ProxySQL) miss ▼
│ ┌─▶ Read replica 1 ┐
├──── reads ─────────┼─▶ Read replica 2 ┼─ (async replication)
│ └─▶ Read replica N ┘
└──── writes ──▶ Primary ──▶ (later) Vitess shards ─▶ Primary A / Primary B
Schritt 0: Connection Pooling
Jede MySQL-Connection kostet Speicher und einen Thread. Bei 100x Traffic erschöpfst du lange vor der CPU. Ein Pooler wie oder multiplext Tausende App-Connections auf wenige Hundert DB-Connections. Es ist eine Config-Änderung, keine Neuarchitektur - tu es zuerst.
