Lisez depuis un réplica ou un snapshot (jamais le primary), paginez avec la pagination keyset au lieu d'OFFSET, throttlez le débit de lecture, et streamez les résultats directement vers un stockage objet. Le but est d'exporter 500M de lignes sans tenir de longs verrous, sans faire spiker le CPU du primary, ni faire exploser la mémoire.
Pipeline d'export
Primary DB ──async replication──▶ Read replica / snapshot
│ (isolated from live traffic)
▼
Export worker
keyset page: WHERE id > :last
│ throttle (sleep / rate limit)
▼
Stream (batches)
│
▼
S3 / GCS (NDJSON / Parquet)
