وسّع على مراحل: read replicas + التخزين المؤقت للقراءات أولاً، ثم التجزئة (Vitess) للكتابات — وأضِف تجميع الاتصالات (connection pooling) قبل أي شيء، فهو أرخص 10x. القراءات والكتابات تتوسّع بشكل مختلف، فلا تلجأ إلى التجزئة في اليوم الأول.
┌─▶ 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
الخطوة 0: تجميع الاتصالات
كل اتصال MySQL يكلّف ذاكرة وخيطاً. عند حركة مئة ضعف ستستنفد قبل الـ CPU بكثير. مُجمِّع مثل أو يُعدِّد (multiplexes) آلاف اتصالات التطبيق على بضع مئات من اتصالات قاعدة البيانات. إنه تغيير إعدادات لا إعادة هندسة — افعله أولاً.
