Ответ 1
Опция -C
использует сжатие, которое может присутствовать в протоколе клиент-сервер MySQL. Gzip'ing будет использовать утилиту gzip
в конвейере. Я уверен, что последнее не принесет пользы, так как сжатие и сжатие будут происходить на одной машине в этом случае. Если машина, из которой вы выгружаетесь, является локальной, то опция -C
, вероятно, просто растрачивает циклы процессора - она сжимает сообщения протокола между mysqldump
и демонами mysqld
.
Единственный конвейер команд, который может иметь смысл здесь, выглядит примерно так:
mysqldump -u root -p database_name | mysql -C -h other-host -Ddatabase_name -B
Вывод mysqldump
переходит к конвейеру, который будет читать клиент командной строки mysql
. Параметр -C
сообщает mysql
сжимать сообщения, которые он отправляет, на other-host
. Параметр -B
отключает буферизацию и интерактивное поведение в клиенте mysql
, что может ускорить процесс еще немного.
Скорее всего, было бы быстрее сделать что-то вроде:
mysqldump -u root -p database_name | gzip > dump.gz
scp dump.gz [email protected]:/tmp
ssh [email protected] "gunzip /tmp/dump.gz | mysql -Ddatabase_name -B; rm /tmp/dump.gz"
Если у вас есть SSH, работающий на другом компьютере, все равно.