단계적으로 확장하십시오: read는 read replica + 캐싱 먼저, 그다음 write는 샤딩(Vitess) — 그리고 무엇보다 먼저 connection pooling을 추가하십시오, 그것이 가장 저렴한 10배이기 때문입니다. read와 write는 다르게 확장되므로 첫날부터 샤딩에 손대지 마십시오.
┌─▶ 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단계: connection pooling
모든 MySQL 연결은 메모리와 스레드를 소비합니다. 100배 트래픽에서는 CPU보다 훨씬 먼저 를 소진합니다. 이나 같은 pooler는 수천 개의 앱 연결을 수백 개의 DB 연결로 multiplex합니다. 재설계가 아니라 설정 변경입니다 — 먼저 하십시오.
