Speed differences with mysqldump and gzip
mysqldump database > database.sql && gzip database.sql
VS.
mysqldump database | gzip > database.sql.gz
The first example writes the result of mysqldump to the disk first, and them gzips the file (which in turn has to be read into memory, and then written to disk again). The second example keeps all the data in memory until the last minute, at which point it writes it to the disk.
In my testing, I found that the second way of doing things was, in most cases, about two and a half times faster. Also, keeping the data from disk is a good idea because it means you don't need "swap" space on the disk to facilitate the dump in the first place.
Note: we have a RAID array on the server so it would be even worse on a single-disk machine, and the mysqldump file is over a gigabyte in size (uncompressed).