у mysql нет адекватных методов управления приоритетами (есть
low-priority yно оно действует на не все engines) поэтому исторически распределение нагрузки делают с помощью репликации.
Поднимаешь второй сервер (физически файлы базы должны быть размещены на другом диске или даже сервере) и настраиваешь между основным и этим второстепенным master-slave репликацию, требования к этому среверу сильно ниже (зависит от нагрузки само сабой, но в основном там будут только записи) и уже на эту базу натравливаешь mysqldump
p.s. альтернатива, запилить свой/подправить исходники mysqldump, в своем приложении скорость получения данных можно контролировать принудительными sleep-ами (например запрашиваешь табличку, а в цикле получения данных вставляешь раз на тысячу строк sleep).
первый же нагугленный код mysqldump на php, вставь слип в
этот цикл
upd. не нужно править код штатной утилиты, более чем достаточно просто использовать штатный механизм потоков linux и замедлить запись итогового дампа с помощью к примеру
cstream
mysqldump ... | cstream -t $((1024*1024)) | zstd --ultra -T0 -o backup.sql.zstd
p.p.s. тупо, останаливаешь базу, копируешь файлы с таблицами как есть, переносишь на свою машину, поднимаешь там ту же версию mysql, делаешь дамп