La opción -C
utiliza compresión que puede estar presente en el protocolo cliente-servidor MySQL. Gzip'ing usaría la utilidad gzip
en una tubería. Estoy bastante seguro de que esto último no serviría de nada ya que la compresión y la descompresión ocurrirían en la misma máquina en este caso. Si la máquina desde la que está descargando es local, entonces la opción -C
probablemente esté desperdiciando ciclos de CPU: comprime los mensajes de protocolo entre mysqldump
y mysqld
daemon.
La única canalización de comandos que podría tener sentido aquí es algo como:
mysqldump -u root -p database_name | mysql -C -h other-host -Ddatabase_name -B
La salida de mysqldump
va a la tubería que va a leer el cliente mysql
de línea de comandos. La opción -C
dice mysql
para comprimir los mensajes que está enviando al other-host
. La opción -B
deshabilita el almacenamiento en búfer y el comportamiento interactivo en el cliente mysql
, lo que puede acelerar un poco más las cosas.
Probablemente sería más rápido para hacer algo como:
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"
Siempre que tenga SSH corriendo en la otra máquina de todos modos.
Hasta donde yo sé, -C comprime el código sql mientras se envía desde el servidor mysql de origen al servidor de destino donde está volcando el sql, luego lo descomprime en el servidor de destino y guarda el código descomprimido archivo en el (usualmente) disco duro. Mientras gzipping daría como resultado un archivo comprimido (gzip) que se guarda en el disco duro. –