Leia de uma réplica ou snapshot (nunca do primário), pagine com keyset pagination em vez de OFFSET, faça throttle da taxa de leitura, e faça streaming dos resultados direto para object storage. O objetivo é exportar 500M de linhas sem segurar locks longos, sem picar a CPU do primário ou estourar a memória.
Pipeline de 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)
